के माध्यम से कैनवास में आइटम कैसे प्रदर्शित करें मेरे पास डेटा बाध्यकारी का उपयोग कर कैनवास में प्रदर्शित होने वाली वस्तुओं की सूची है।बाध्यकारी
ItemsToShowInCanvas = new ObservableCollection<ItemDetail>
{
new ItemDetail {Text = "ABC", Top = 10, Left = 200},
new ItemDetail {Text = "DEF", Top = 100, Left = 300},
new ItemDetail {Text = "PQR", Top = 50, Left = 150}
};
ItemDetail पाठ के लिए स्वत: गुणों के साथ एक सरल वर्ग है, शीर्ष और वाम को महत्व देता
public class ItemDetail
{
public string Text { get; set; }
public double Top { get; set; }
public double Left { get; set; }
}
जब मैं आइटम DataBind, वे कैनवास में दिखाई पड़ता है। लेकिन आइटम शीर्ष और बाएं गुणों का उपयोग करके उल्लिखित स्थितियों पर प्रकट नहीं होते हैं।
<Canvas>
<ItemsControl ItemsSource="{Binding Path=ItemsToShowInCanvas}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Text}" Canvas.Top="{Binding Path=Top}" Canvas.Left="{Binding Path=Left}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Canvas>
ItemsControl में
TextBlock
बाँध डिफ़ॉल्ट itemspanel के रूप में StackPanel उपयोग करता है। जो टेक्स्टब्लॉक आप जोड़ रहे हैं वह वास्तव में एक स्टैकपैन में जोड़ रहा है लेकिन कैनवास नहीं है। आइटम नियंत्रण कैनवास में जोड़ रहा है। कैनवास – Bathineniपर itempanel को बदलने का प्रयास करें bathineni के उत्तर के लिए धन्यवाद। मैंने आइटमपैनल को कैनवास के रूप में डालने की कोशिश की लेकिन यह काम नहीं किया। आइटम एक दूसरे पर दिखाना शुरू कर दिया। ItemContainerStyle जोड़ना काम किया। –
[डुप्लिकेट] का संभावित डुप्लिकेट: क्या एक्सएएमएल में कैनवास की बच्चों की संपत्ति को बांधना संभव है?] (Http://stackoverflow.com/questions/889825/wpf-is-it-possible-to-bind-a-canvass-children -प्रोपर्टी-इन-एक्सएएमएल) –