Show / Hide Table of Contents

Практическое руководство. Использование пространств имен XML в привязке данных

Пример

В этом примере демонстрируется обработка пространств имен, указанных в источнике привязки XML.

Если данные XML имеют следующее определение пространства имен XML.

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

Можно использовать XmlNamespaceMapping элемент для сопоставления пространства имен, чтобы Prefix, как показано в следующем примере. Затем можно использовать Prefix для ссылки на XML пространства имен. ListBox В этом примере отображается title и DC: Date каждого элемент.

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

Обратите внимание, что Prefix вами не должно соответствовать использованному в XML источника; Если префикс изменяется в XML источника, то сопоставление по-прежнему работает.

В данном конкретном примере XML данные поступают из веб-службы, но XmlNamespaceMapping элемент также работает со встроенными XML или XML данных во внедренном файле.

См. также

  • Привязка к XML-данным с помощью XMLDataProvider и запросов XPath
  • Общие сведения о привязке данных
  • Практические руководства
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX