如何:在数据绑定中使用 XML 命名空间
示例
本示例演示如何处理在 XML 绑定源中指定的命名空间。
如果 XML 数据具有以下 XML 命名空间定义:
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
可以使用 XmlNamespaceMapping 元素将命名空间映射到 Prefix,如以下示例所述。 然后可以使用 Prefix 来引用 XML 命名空间。 此示例中的 ListBox 显示标题和每个项的 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 数据来自于一个 Web 服务,但 XmlNamespaceMapping 元素还处理内联 XML 或嵌入的文件中的 XML 数据。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈