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>