zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    unity3d 几种镜头畸变
    深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow
    Autofac 中间件使用
    NetCore SignalR 重连逻辑实现
    CentOS 7 安装 MySql8.0
    CentOS 7 安装 Nginx
    CentOS 7 安装 Docker
    Nginx 配置站点
    VUE AXIOS 跨域问题
    CentOS 7 安装 MySql 8
  • 原文地址:https://www.cnblogs.com/anlegou/p/6500745.html
Copyright © 2011-2022 走看看