मेरे पास कस्टम ऑब्जेक्ट्स की एक सूची है: दो स्ट्रिंग गुणों के साथ फल कहें नाम और रंग। ये एक सूची में हैं।WPF डेटाग्रिड समस्याओं की सूची के लिए बाध्यकारी
private readonly List<Fruit> fruitList = new List<Fruit>();
तब मैं सूची में फल वस्तुओं को लोड करता हूं।
मैं WPF डेटा ग्रिड के लिए इस सूची बाध्य करने के लिए कोशिश कर रहा हूँ:
सी #:
dgFruit.ItemsSource = "{Binding}";
XAML:
<toolkit:DataGrid Name="dgFruit"
ItemsSource="{Binding Path=fruitList}" >
<toolkit:DataGrid.Columns>
<toolkit:DataGridComboBoxColumn
Header="Name"
SelectedValueBinding="{Binding Path=Name}"
TextBinding="{Binding Path=Name}" Width="5*" />
<toolkit:DataGridComboBoxColumn
Header="Color"
SelectedValueBinding="{Binding Path=Color}"
TextBinding="{Binding Path=Color}" Width="5*" />
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
कारण वे एक combobox में हो रहा है, क्योंकि मैं उपयोगकर्ता होना चाहता हूँ रिश्ते को बदलने में सक्षम यह वास्तविक उदाहरण नहीं है लेकिन आपको विचार मिलता है। उदाहरण के लिए कहें कि फल परिपक्व नहीं था इसलिए वे केला रंग को हरे रंग में बदलते हैं :)
मुझे डेटाग्रिड में इन वस्तुओं को प्राप्त करने में कोई भाग्य नहीं है ... और ट्रैक के नीचे, मुझे एक चाहिए datagridcell में आइटम पर क्लिक करें बता गया को बदल सकते हैं और फल के नाम और रंग के सभी संभव प्रकार दिखाने के लिए (ताकि वे रिश्तों को बदल सकते हैं)
यहाँ एक त्रुटि मैं हो रही है:
System.Windows.Data Error: 39 : BindingExpression path error: 'Color' property not found on 'object' ''Char' (HashCode=6750311)'. BindingExpression:Path=Color; DataItem='Char' (HashCode=6750311); target element is 'TextBlockComboBox' (Name=''); target property is 'Text' (type 'String')
कर सकते हैं कोई मदद करता है? कारण मैं अपने कॉलम को xaml में सेट कर रहा हूं इसलिए मैं चौड़ाई को स्टार आकार में सेट कर सकता हूं और कॉलम बराबर चौड़ाई रख सकता हूं।
मुझे लगता है कि अधिकांश उदाहरण एक पर्यवेक्षण चयन का उपयोग करते हैं, लेकिन अगर मैं सूची में बाध्य कर सकता हूं तो मुझे इसका उपयोग क्यों करना है?
मुझे कृपया knwo मेरी उदाहरण आगे स्पष्टीकरण
संपादित करें की आवश्यकता है: क्या मैं अब है:
XAML:
<toolkit:DataGrid Name="dgFruit"
ItemsSource="{Binding}"
AutoGenerateColumns="False">
<toolkit:DataGrid.Columns>
<toolkit:DataGridTextColumn
Header="Name"
Width="5*"/>
<toolkit:DataGridComboBoxColumn
Header="Color"
Width="5*"/>
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
सी #:
DataContext = fruitList;
असल में जब मैं DataContext का उपयोग करता हूं तो मुझे कोई इट नहीं मिलता है सुश्री। जब मैं आइटमसोर्स का उपयोग करता हूं तो मुझे रिक्त रेखाएं मिलती हैं, लेकिन पंक्तियों की सही संख्या इसलिए यह सही रेखाओं के साथ अधिक दिखाई देती है।
मैं डेटा दिखाने के लिए डेटा प्राप्त कर सकता हूं अगर मैं इसे स्वचालित रूप से कॉलम उत्पन्न करता हूं। अगर मैं autogeneratecolumns को गलत पर सेट करता हूं और फिर xaml में अपने कॉलम निर्दिष्ट करता हूं जैसे कि मैं स्टार साइजिंग का उपयोग करना चाहता हूं, मुझे कॉलम की सही संख्या मिलती है लेकिन कोई टेक्स्ट नहीं!
यह owrks है, लेकिन जब मैं ऐसा करता हूं तो मैं xaml में परिभाषित कॉलम को अनदेखा कर देता हूं और यह बाईं ओर नए जोड़ता है। क्या मैं इन ऑटो जनरेट किए गए कॉलम के लिए प्रोग्रामिक रूप से स्टार आकार सेट कर सकता हूं? – baron
आप स्वतः जेनरेट किए गए लोगों को बंद कर सकते हैं। XAML में आपके डेटाग्रिड पर: ऑटोजनेर कॉलम = "झूठा" – lesscode
करीब आ रहा है, हालांकि कोई आइटम नहीं दिख रहा है :(हालिया संपादन देखें – baron