WPF:数据绑定--Xml数据源
XmlDataSource Xml数据源实现效果:
关键词:
数据源xml <XmlDataProvider x:Key="InventoryData" XPath="Inventory/Books"> <x:XData> <Inventory xmlns=""> <Books> <Book ISBN="0-7356-0562-9" Stock="in" Number="9"> <Title>XML in Action</Title> <Summary>XML Web Technology</Summary> </Book> <Book ISBN="0-7356-1370-2" Stock="in" Number="8"> <Title>Programming Microsoft Windows With C#</Title> <Summary>C# Programming using the .NET Framework</Summary> </Book> <Book ISBN="0-7356-1288-9" Stock="out" Number="7"> ListBox绑定xml数据及模板: <ListBox Width="400" Height="300" Background="Honeydew"> <ListBox.ItemsSource> <Binding Source="{StaticResource InventoryData}" XPath="*[@Stock='out'] | *[@Number>=8 or @Number=3]"/> </ListBox.ItemsSource> <!--Alternatively,you can do the following. --> <!--<ListBox Width="400" Height="300" Background="Honeydew" ItemsSource="{Binding Source={StaticResource InventoryData},XPath=*[@Stock='out'] | *[@Number>=8 or @Number=3]}">--> <ListBox.ItemTemplate> <DataTemplate> <TextBlock FontSize="12" Foreground="Red"> <TextBlock.Text> <Binding XPath="Title"/> </TextBlock.Text> </TextBlock> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 当运行 XPath 查询时,它将返回 XmlNode 或 XmlNode 列表。 XmlNode 是一个CLR对象,这意味着可以使用 Path 属性绑定到CLR属性。
XmlnsBind要声明 URI 与前缀之间的映射,请创建一个 XmlNamespaceMapping 类,并将该类添加到用作绑定的 XmlNamespaceManager 的 XmlNamespaceMappingCollection 对象。
如果您的 XML 数据具有以下 XML 命名空间定义: <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"/> <TextBlock Grid.Row="1" Text="{Binding XPath=dc:date}" /> 扩展:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |