次の方法で共有


方法 : データ バインディングで XML 名前空間を使用する

更新 : 2007 年 11 月

使用例

この例は、XMLバインディング ソースで指定された名前空間を処理する方法を示します。

XML データに次の XML 名前空間定義があるとします。

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

この場合は、次の例のように、XmlNamespaceMapping 要素を使用して名前空間を Prefix にマッピングします。これで、Prefix を使用して XML 名前空間を参照できます。この例の ListBox では、各 itemtitle および dc:date が表示されます。

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

  <XmlDataProvider Source="https://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 データのソースが Web サービスになっていますが、XmlNamespaceMapping 要素は、埋め込まれたファイルのインライン XML または XML データでも機能します。

コード例全体については、「XML 名前空間を使用したバインディングのサンプル」を参照してください。

参照

処理手順

方法 : XMLDataProvider と XPath クエリを使用して XML データにバインドする

概念

データ バインディングの概要

その他の技術情報

データ バインディングのサンプル

データ バインディングに関する「方法」トピック