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>
  • 相关阅读:
    Visual Studio 2008 每日提示(四)
    修改XP注册到用户名和公司组织名
    Visual Studio技巧之打造拥有自己标识的代码模板
    收集的学习资料
    多个记录更新(存储过程)
    '1,2,3,68,10'转换为'1,2,3,6,7,8,10'
    .NET程序员面试的题一部 (转)
    [.net]DataGrid中绑定DropDownList[转]
    使用DELETE与TRUNCATE删除表所有行的区别
    sysobjects 各列的含义
  • 原文地址:https://www.cnblogs.com/anlegou/p/6500745.html
Copyright © 2011-2022 走看看