ObjectDataProvider学习整理
来源:互联网 发布:eclipse 查看java源码 编辑:程序博客网 时间:2024/05/21 09:10
在MSDN里可以看到,ObjectDataProvider这个类中有很多属性,其中我接触到的几个有:MethodName,MethodParameters,ObjectType和ConstructorParameters
下面是一段代码
MSDN里的解释:要调用的方法的名称。 默认值为 null,是String类型的一个字符串。
MSDN里的解释:要传递给该方法的参数列表。 默认值是空列表。
我们也可以把这个ObjectDataProvider实例作为一个控件的DataContext,方便数据绑定。
最后就是像这样的
今天在看别人代码的时候看到这样一个绑定方法
一个个解释一下
ObjectType
MSDN里的解释:要创建其实例的数据类型。 使用x:Type 标记扩展设置类型。下面是一段代码
<ObjectDataProvider ObjectType="{x:Type local:TemperatureScale}"/>TemperatureScale是我们在项目中定义的一个类名,即创建一个Student类的实例。
MSDN里的解释:要调用的方法的名称。 默认值为 null,是String类型的一个字符串。
<ObjectDataProvider ObjectType="{x:Type local:TemperatureScale}" MethodName="ConvertTemp"/>
ConvertTemp是TemperatureScale类中的一个方法。
MSDN里的解释:要传递给该方法的参数列表。 默认值是空列表。
<ObjectDataProvider ObjectType="{x:Type local:TemperatureScale}" MethodName="ConvertTemp" x:Key="convertTemp"> <ObjectDataProvider.MethodParameters> <system:Double>0</system:Double> <local:TempType>Celsius</local:TempType> </ObjectDataProvider.MethodParameters></ObjectDataProvider>
ConvertTemp这个方法接受两个参数(分别为double类型和enum类型的TempType),作用是将定值从一个温标转到另一个温标。这段代码就是给两个参数赋值,一个是double类型的0,还有一个是enum类型的Celsius(摄氏)。
这样一个ObjectDataProvider实例就完成了。我们也可以把这个ObjectDataProvider实例作为一个控件的DataContext,方便数据绑定。
<Window.DataContext> <ObjectDataProvider ObjectType="{x:Type local:TemperatureScale}" MethodName="ConvertTemp" x:Key="convertTemp"> <ObjectDataProvider.MethodParameters> <system:Double>0</system:Double> <local:TempType>Celsius</local:TempType> </ObjectDataProvider.MethodParameters></ObjectDataProvider></Window.DataContext>
ConstructorParameters
MSDN里的解释:要传递给该构造函数的参数列表。默认值为null。
如果不给一个类提供构造函数,那么他的默认构造函数是不带参数的,所以这个参数就传不进去,所以要用到这个属性的话,就要给类提供带参数的构造函数。下面有一个例子。
XAML里的定义如下
<Window x:Class="ObjectDataProvider.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:ObjectDataProvider" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <ObjectDataProvider x:Key="data" ObjectType="{x:Type local:Student}"> <ObjectDataProvider.ConstructorParameters> <sys:String>ryan</sys:String> </ObjectDataProvider.ConstructorParameters> </ObjectDataProvider> </Window.Resources> <StackPanel> <TextBox Text="{Binding Source={StaticResource data}, Path=_StudentName}"></TextBox> </StackPanel></Window>在CS文件中有一个Student类,定义了一个构造函数,代码如下:
public class Student { public string _StudentName { set; get; } public Student(string StudentName) { this._StudentName = StudentName; } }
最后就是像这样的
不知道我的理解对不对,如果有错,希望大家给我指正。
今天在看别人代码的时候看到这样一个绑定方法
<DataGrid Name="datagrid1" ItemsSource="{Binding Path=Group}" AutoGenerateColumns="True" Height="82" /><TextBox Text="{Binding ElementName=dataGrid1, Path=ItemsSource/ID}"/>其中Group是一个BindingList<T>类型的集合,他所在的类实现了INotifyPropertyChanged接口
private BindingList<T> _Group = null; public BindingList<T> Group { get { if (this._Group == null) { this._Group = new BindingList<T>(); this._Group.Add(new T{ 初始化 }); } return _Group; } set { _Group = value; OnPropertyChanged("Group"); } }觉得挺有意思的,又学到了一种数据绑定的方法。
- ObjectDataProvider学习整理
- ObjectDataProvider
- ObjectDataProvider
- ObjectDataProvider实现Add
- WPF(Binding of ObjectDataProvider)
- ObjectDataProvider使用简单案例
- WPF数据提供者ObjectDataProvider
- WPF中使用ObjectDataProvider绑定方法
- 使用ObjectDataProvider 将函数应用到绑定
- Android学习整理-Intent整理
- WPF使用 ObjectDataProvider 为方法作为绑定数据源
- ObjectDataProvider 作为Binding的Source来使用的案例
- OWB学习经验整理
- MO学习整理
- 学习整理清单
- J2ME学习笔记整理
- OPENSSL 学习整理-介绍
- OPENSSL 学习整理-介绍
- emWin Release notes,最新版本为V5.20
- pomelo之master服务器的启动
- Boost的UDP接收server示例
- cocos2d-x Action
- hdu 2112 HDU Today
- ObjectDataProvider学习整理
- 《Microsoft SQL Server 2008 Analysis Services 》
- Dll注入经典方法完整版
- v$session 中查找locking信息
- discuz 注册和登陆成功后跳转页面修改
- 直接拿来用!10段超有用的Git命令行代码
- 正则表达式30分钟入门教程
- Linux下搭建 Cocos2d-x-2.1.4 编译环境
- 栈