Bagikan melalui


Cara: Menggunakan Namespace XML di Pengikatan Data

Contoh

Contoh ini memperlihatkan cara menangani namespace yang ditentukan di sumber pengikatan XML Anda.

Jika data XML Anda memiliki definisi namespace XML berikut:

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

Anda dapat menggunakan XmlNamespaceMapping elemen untuk memetakan namespace ke Prefix, seperti dalam contoh berikut. Anda kemudian dapat menggunakan Prefix untuk merujuk ke namespace XML. ListBox Dalam contoh ini menampilkan judul dan dc:date dari setiap item.

<StackPanel.Resources>
  <XmlNamespaceMappingCollection x:Key="mapping">
    <XmlNamespaceMapping Uri="http://purl.org/dc/elements/1.1/" Prefix="dc" />
  </XmlNamespaceMappingCollection>

  <XmlDataProvider Source="http://msdn.microsoft.com/subscriptions/rss.xml"
                   XmlNamespaceManager="{StaticResource mapping}"
                   XPath="rss/channel/item" x:Key="provider"/>

  <DataTemplate x:Key="dataTemplate">
    <Border BorderThickness="1" BorderBrush="Gray">
      <Grid Width="600" Height="50">
        <Grid.RowDefinitions>
          <RowDefinition Height="25"/>
          <RowDefinition Height="25"/>
        </Grid.RowDefinitions>
        <TextBlock Grid.Row="0" Text="{Binding XPath=title}" />
        <TextBlock Grid.Row="1" Text="{Binding XPath=dc:date}" />
      </Grid>
    </Border>
  </DataTemplate>
</StackPanel.Resources>

<ListBox
  Width="600"
  Height="600"
  Background="Honeydew"
  ItemsSource="{Binding Source={StaticResource provider}}"
  ItemTemplate="{StaticResource dataTemplate}"/>

Perhatikan bahwa yang Prefix Anda tentukan tidak harus cocok dengan yang digunakan di sumber XML; jika awalan berubah di sumber XML pemetaan Anda masih berfungsi.

Dalam contoh khusus ini, data XML berasal dari layanan web, tetapi XmlNamespaceMapping elemen juga berfungsi dengan data XML atau XML sebaris dalam file yang disematkan.

Baca juga