मैंने कई समाधानों की तलाश की है और कोशिश की है लेकिन अब तक उनमें से कोई भी मेरी समस्या का समाधान नहीं करता है। मैं एक्सडी दस्तावेज़ के रूप में संग्रहीत XML दस्तावेज़ से डेटा प्रदर्शित करने के लिए विजुअल स्टूडियो 2010/.NET4 में WPF से अंतर्निहित डेटाग्रिड का उपयोग कर रहा हूं।WPF डेटाग्रिड में xml को सही तरीके से कैसे बांधें?
मेरा कोड सभी ठीक चलाता है, और मैंने सत्यापित किया है कि XDocument मौजूद और सही है। हालांकि, डेटाग्रिड कोई डेटा प्रदर्शित नहीं करता है।
एक्सएमएल (स्पष्टता के लिए सरलीकृत) इस तरह दिखता है:
<DataGrid x:Name="LibraryView" Grid.Row="1"
DataContext="{Binding Path=TrackList}" ItemsSource="{Binding XPath=/data/track}">
<DataGridTextColumn Header="Title" Binding="{Binding XPath=name}"/>
<DataGridTextColumn Header="Artist" Binding="{Binding XPath=artist_name}"/>
<DataGridTextColumn Header="Album" Binding="{Binding XPath=album_name}"/>
<DataGridTextColumn Header="Length" Binding="{Binding XPath=duration}"/>
</DataGrid>
सी # कि यह सिर्फ बैकअप लेता है एक नया XDocument (एक से डाउनलोड प्रदान करती है:
<data>
<track>
<id>211</id>
<name>Track Name</name>
<duration>156</duration>
<artist_id>13</artist_id>
<artist_name>Artist Name</artist_name>
<album_id>29</album_id>
<album_name>Album Name</album_name>
</track>
...
</data>
मेरे XAML इस तरह दिखता है वेब सेवा) TrackList प्रॉपर्टी में (जो INotifyPropertyChanged लागू करता है)। इस पर कोई और प्रसंस्करण नहीं किया जाता है।
मैंने पहले XLinq का उपयोग करने का प्रयास किया है, एक क्वेरी परिणाम से जुड़ने के लिए, जो या तो (एक ही समस्या) काम नहीं करता है, इसलिए मैंने सोचा कि मैं संभावित रूप से छोटी गाड़ी लिंक कथन लिखने से बचने के लिए XPath दृष्टिकोण का प्रयास करूंगा, और कोशिश करें समस्या को खोजने के लिए।
मैं डेटाग्रिड को सही तरीके से प्रदर्शित करने के तरीके के बारे में विचारों से बाहर हूं। इस बारे में मेरी समझ है कि इसे कैसे काम करना चाहिए, इसकी स्पष्ट कमी है, इसलिए मैं किसी भी मदद की सराहना करता हूं।
संपादित करें: यह ध्यान देने योग्य है कि मेरे पास इनपुट डेटा प्रारूप के साथ कुछ लचीलापन है, क्योंकि मैं स्वयं कच्चे एक्सएमएल को डाउनलोड कर रहा हूं। मैं कुछ सुझावों का प्रयास करूंगा और देख सकता हूं कि मैं काम करने के लिए क्या कर सकता हूं।
यह संदेश के साथ एक अवैधऑपरेशन अपवाद उठाता है, "आइटम्स संग्रह का उपयोग करने से पहले आइटम संग्रह खाली होना चाहिए। यह डेटा कॉन्टेक्स्ट को असाइनमेंट करते समय या प्रॉपर्टी चेंज के लिए इवेंट हैंडलर में होता है, इसलिए कार्यान्वयन को रोकता है। संपादित करें: नहीं यह ' टी, मैं अपनी कॉलम परिभाषाओं के आस-पास को जोड़ना भूल गया। –
IanGilham
अपवाद मेरी गलती थी। यह ठीक काम करता है। – IanGilham
ओह मैन, डीम्गिंग xaml अप्रिय हो सकता है। – Natxo