Wie binden von xml in das WPF-DataGrid-richtig?

Habe ich gesucht und versucht verschiedene Lösungen, aber so weit keines von Ihnen mein problem zu lösen. Ich bin mit dem integrierten DataGrid aus dem WPF in Visual Studio 2010/.NET4 zum anzeigen von Daten aus einem XML-Dokument gespeichert, als ein XDocument.

Mein code läuft wunderbar, und ich habe überprüft, dass die XDocument ist vorhanden und korrekt. Das DataGrid wird keine Daten angezeigt, jedoch.

Die XML sieht so aus (aus Gründen der übersichtlichkeit vereinfacht):

<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>

Meiner XAML-Code sieht wie folgt aus:

<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>

C#, der es sichert nur ordnet eine neue XDocument (Download von einem web-service), um die TrackList Eigenschaft (die INotifyPropertyChanged implementiert). Keine weitere Verarbeitung erfolgt auf es.

Habe ich vorher versucht, mit XLinq, zu binden, um ein Abfrage-Ergebnis, das hat nicht funktioniert (Gleiches problem), so dass ich dachte, ich würde versuchen, die XPath-Ansatz zu vermeiden, schreiben einen potenziell buggy Linq-Anweisung, und versuchen, das problem zu finden.

Ich bin running out of Ideen, wie man den DataGrid korrekt angezeigt wird. Mein Verständnis von, wie das funktionieren soll ist ganz klar fehlt, also ich wäre dankbar jede Hilfe angeboten.

Edit: Es ist erwähnenswert, dass ich eine gewisse Flexibilität bei den Eingangs-Daten-format, so wie ich bin herunterladen von XML-Rohdaten selbst. Ich werde versuchen, einige der Vorschläge und sehen, was ich bekommen kann, um zu arbeiten.

InformationsquelleAutor IanGilham | 2010-02-04
Schreibe einen Kommentar