다음을 통해 공유


방법: XML 네임스페이스를 데이터 바인딩에 사용

업데이트: 2007년 11월

예제

이 예제에서는 XML바인딩 소스에 지정된 네임스페이스를 처리하는 방법을 보여 줍니다.

XML 데이터에 다음 XML 네임스페이스 정의가 있는 경우

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

다음 예제와 같이 XmlNamespaceMapping 요소를 사용하여 네임스페이스를 Prefix에 매핑할 수 있습니다. 그런 다음 Prefix를 사용하여 XML 네임스페이스를 참조할 수 있습니다. 이 예제의 ListBox는 각 itemtitledc: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 데이터는 웹 서비스에서 가져온 것이지만 XmlNamespaceMapping 요소는 포함된 파일의 인라인 XML 또는 XML 데이터의 경우에도 작동합니다.

전체 예제를 보려면 XML 네임스페이스를 사용한 바인딩 샘플을 참조하십시오.

참고 항목

작업

방법: XMLData Provider 및 XPath 쿼리를 사용하여 XML 데이터에 바인딩

개념

데이터 바인딩 개요

기타 리소스

데이터 바인딩 샘플

데이터 바인딩 방법 항목