Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Contoh ini menunjukkan cara mengikat data XML ke ItemsControl menggunakan XDocument.
Contoh
Kode XAML berikut menentukan ItemsControl dan menyertakan templat data untuk data jenis Planet di namespace XML http://planetsNS. Jenis data XML yang menempati namespace harus menyertakan namespace dalam kurung kurawal, dan jika muncul di mana ekstensi markup XAML dapat muncul, itu harus mendahului namespace dengan urutan escape kurung kurawal. Kode ini mengikat properti dinamis yang sesuai dengan metode Element dan Attribute kelas XElement. Properti dinamis memungkinkan XAML untuk mengikat properti dinamis yang berbagi nama metode. Untuk mempelajari selengkapnya, lihat LINQ ke properti dinamis XML. Perhatikan bagaimana deklarasi namespace default untuk XML tidak berlaku untuk nama atribut.
<StackPanel Name="stacky">
<StackPanel.Resources>
<DataTemplate DataType="{}{http://planetsNS}Planet" >
<StackPanel Orientation="Horizontal">
<TextBlock Width="100" Text="{Binding Path=Element[{http://planetsNS}DiameterKM].Value}" />
<TextBlock Width="100" Text="{Binding Path=Attribute[Name].Value}" />
<TextBlock Text="{Binding Path=Element[{http://planetsNS}Details].Value}" />
</StackPanel>
</DataTemplate>
</StackPanel.Resources>
<ItemsControl
ItemsSource="{Binding }" >
</ItemsControl>
</StackPanel>
Kode C# berikut memanggil Load dan mengatur konteks data panel tumpukan ke semua subelemen elemen bernama SolarSystemPlanets di namespace xml http://planetsNS.
planetsDoc = XDocument.Load("../../Planets.xml");
stacky.DataContext = planetsDoc.Element("{http://planetsNS}SolarSystemPlanets").Elements();
planetsDoc = XDocument.Load("../../Planets.xml")
stacky.DataContext = planetsDoc.Element("{http://planetsNS}SolarSystemPlanets").Elements()
Data XML dapat disimpan sebagai sumber daya XAML menggunakan ObjectDataProvider. Untuk contoh lengkapnya, lihat kode sumber L2DBForm.xaml. Contoh berikut menunjukkan bagaimana kode dapat mengatur konteks data ke sumber daya objek.
planetsDoc = (XDocument)((ObjectDataProvider)Resources["justTwoPlanets"]).Data;
stacky.DataContext = planetsDoc.Element("{http://planetsNS}SolarSystemPlanets").Elements();
planetsDoc = CType((CType(Resources("justTwoPlanets"), ObjectDataProvider)).Data, XDocument)
stacky.DataContext = planetsDoc.Element("{http://planetsNS}SolarSystemPlanets").Elements()
Properti dinamis yang memetakan menjadi Element dan Attribute memberikan fleksibilitas dalam XAML. Kode Anda juga dapat mengikat hasil LINQ untuk kueri XML. Contoh ini mengikat hasil kueri yang diurutkan oleh nilai elemen.
stacky.DataContext =
from c in planetsDoc.Element("{http://planetsNS}SolarSystemPlanets").Elements()
orderby Int32.Parse(c.Element("{http://planetsNS}DiameterKM").Value)
select c;
stacky.DataContext = From c In planetsDoc.Element("{http://planetsNS}SolarSystemPlanets").Elements()
Order By Int32.Parse(c.Element("{http://planetsNS}DiameterKM").Value)
Select c
Lihat juga
.NET Desktop feedback