WPF教程(十)---数据绑定(3)--数据绑定1

文章介绍了在WPF中如何使用XmlDataProvider来绑定XML数据,包括从嵌入式或外部XML文件中获取数据,以及如何通过设置Source和XPath属性来实现控件与XML数据的绑定。示例展示了如何将ListBox的项与XML文件中的颜色列表绑定,并显示所选颜色。
摘要由CSDN通过智能技术生成

一、 XML数据绑定


XML数据绑定。XmlDataProvider 用来绑定 XML 数据,该XML数据可以是嵌入.Xmal文件的 XmlDataProvider标记中,也可以是外部位置引用的文件中。
当然嵌入式 XML 内容必须置于 XmlDataProvider 内部的标记中,而且不容易修改,所以建议使用XML数据文件形式。对于XmlDataProvider 必须命名一个 x:Key 值,以便数据绑定目标可对其进行引用。
XmlDataProvider 也可以指向 XML 内容的外部源。例如,项目中一个 colors.xml 文件,文件的内容就是一个颜色列表。

<StackPanel>
  <StackPanel.Resources>
                <XmlDataProvider x:Key="MyColors"  Source="Colors.xml"  XPath="colors">                 
                </XmlDataProvider>
</StackPanel.Resources>
<?xml version="1.0" encoding="utf-8" ?>
 <colors >
                            <color name="Pink"/>
                            <color name="Red"/>
                            <color name="Purple"/>
                            <color name="Cyan"/>
                            <color name="Gray"/>
                            <color name="Turquoise"/>
 </colors>

资源绑定语法与控件绑定语法略有不同。

绑定到控件:可以设置绑定的 ElementName(控件指向) 和 Path 属性

绑定到资源时:需要设置 Source 属性,由于我们是绑定到 XmlDataProvider,所以还要设置绑定的 XPath 属性。例如,下列代码可将 ListBox 的项绑定 MyColors资源。将 Source 属性设置为资源,并将其指定为名为 MyColors 的 StaticResource(静态资源)。XPath 属性指示项会绑定到 XML 数据源中元素的name属性:

<TextBlock Width="248" Height="24" Text="XML数据绑定:"
        TextWrapping="Wrap"/>
            <ListBox x:Name="listXmlColor" Width="248" Height="56" IsSynchronizedWithCurrentItem="True"
                     ItemsSource="{Binding Source={StaticResource MyColors},XPath=color/@name}">
            </ListBox>
            <TextBlock Width="248" Height="24" Text="选中的颜色:" />
            <TextBlock Width="248" Height="24" 
                        Text="{Binding ElementName=listXmlColor,  Path=SelectedValue, Mode=OneWay}"
                     >
            </TextBlock>    

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值