Nasıl yapılır: XML Ad Alanlarını Kullanarak Veri Bağlama

Örnek

Bu örnek, XML bağlama kaynağınızda belirtilen ad alanlarının nasıl işleneceğini gösterir.

XML verilerinizde aşağıdaki XML ad alanı tanımı varsa:

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

XmlNamespaceMappingPrefix Aşağıdaki örnekte olduğu gibi, ad alanını bir ile eşlemek için öğesini kullanabilirsiniz. Daha sonra öğesini kullanarak Prefix XML ad alanına başvurabilirsiniz. ListBoxBu örnekteki ListBox ve DC: her öğenintarihini görüntüler.

<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}"/>

PrefixBELIRTENLERIN XML kaynağında kullanılan ile eşleşmesi gerekmez; önek XML kaynağında değişirse eşlemenin hala işe yarar.

Bu örnekte, XML verileri bir Web hizmetinden gelir, ancak XmlNamespaceMapping öğe, gömülü bir dosyadaki satır ıçı XML veya XML verileriyle de kullanılabilir.

Ayrıca bkz.