wpf数据绑定:xml数据绑定

时间:2023-03-08 16:22:31
wpf数据绑定:xml数据绑定

wpf中可以通过XmlDataProvider,来实现xml数据的绑定。它通过XmlDataProvider来绑定外部资源,需要命名一个 x:Key 值,以便数据绑定目标可对其进行引用,Source设置为 XML 文件名。

xPath:指定xml中绑定的节点。

<StackPanel>

<StackPanel.Resources>

<XmlDataProvider x:Key="MyColors" Source="Colors.xml" XPath="colors">

</XmlDataProvider>

</StackPanel.Resources>

xml文件:

<?xml version="1.0" encoding="utf-8" ?>

 <colors >

                            <color name="Pink"/>

                            <color name="Red"/>

                            <color name="Purple"/>

                            <color name="Cyan"/>

                            <color name="Gray"/>
l
<color name="Turquoise"/> </colors>

对象绑定:

ObjectDataProvider 的 ObjectType 指定将提供数据绑定源的对象,而 MethodName 则指示为获得数据而需调用的方法

例如:

<ObjectDataProvider x:Key="students"  ObjectType="{x:Type local:StudentService}" MethodName="GetStudentList">

studentService 为类。

ConstructionParameters 属性允许您将参数传递给要调用的类的构造函数。此外,可以使用 MethodParameters 属性来指定参数,同时还可以使用 ObjectInstance 属性来指定现有的对象实例作为源。

添加 ObjectDataProvider 时,必须限定数据源类的命名空间:例如

xmlns:local="clr-namespace:WpfApp1.Services"
(2)datatemplate:可以自定义显示的样式。
datatype:元数据
{binding path=}//指定元数据中的属性。

(三):ObjectDataProvider与XmlDataProvider都可以实现外部数据绑定,绑定过后,可以通过x:key供其他资源引用。

dataTemp数据模板:可以通过学好的样式供其他组件引用。

<ListBox x:Name="listObjectBind" Width="450" Height="100" IsSynchronizedWithCurrentItem="True"

                     ItemsSource="{Binding Source={StaticResource students}}"//students是ObjectDataProvider x:Key="students"绑定的外部类 
                     ItemTemplate="{DynamicResource studentLayout}"> //studentlayout是<DataTemplate x:Key="studentLayout" DataType="students">定义的外部模板
</ListBox>