Nasıl yapılır: Veri Bağlamada XML Ad Alanlarını Kullanma

Örnek

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

XML verileriniz aşağıdaki XML ad alanı tanımına sahipse:

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

Aşağıdaki örnekte olduğu gibi ad alanını bir XmlNamespaceMappingile eşlemek için Prefix öğesini kullanabilirsiniz. Daha sonra XML ad alanına başvurmak için Prefix kullanabilirsiniz. Bu örnekteki ,her öğenin başlığı ve dc:date 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}"/>

Belirttiğiniz Prefix XML kaynağında kullanılanla eşleşmesi gerekmediğini unutmayın; XML kaynağında ön ek değişirse eşlemeniz çalışmaya devam eder.

Bu özel örnekte XML verileri bir web hizmetinden gelir, ancak XmlNamespaceMapping öğesi ekli bir dosyadaki satır içi XML veya XML verileriyle de çalışır.

Ayrıca bakınız