WPF数据绑定
2011-08-24 23:19
260 查看
WPF数据绑定为应用程序提供了一种标识数据和与数据交互的简单而又一致的方法。元素能够以公共语言运行库对象(CLR)和XML的形式绑定
到各种数据源中的数据。
数据绑定涉及到两个方面:一个是绑定源,再一个是绑定目标。绑定源即控件绑定所使用的源数据,绑定目标即数据显示的控件。
1、绑定源:
CLR对象:可以绑定到CLR类的公开的属性、子属性、索引器上
ADO.Net对象:例如DataTable、DataView等
XML文件:使用XPath进行解析
DependencyObject:绑定到其依赖项属性上,即控件绑定控件
2、绑定的基本方式
OneWay:绑定导致对源属性的更改会自动更新目标属性,但是对目标属性的更改不会传播回源属性。此绑定类型适用于绑定的控件为隐式
只读控件的情况。
TwoWay:绑定导致对源属性的更改会自动更新目标属性,而对目标属性的更改也会自动更新源属性。此绑定类型适用于可编辑窗体或其他
完全互式UI方案。(确定依赖项属性绑定在默认情况下是单向还是双向的编程方法是:使用GetMetadata获取属性的属性元数据,然后检查
BindsTwoWayByDefault属性的布尔值)
OneWayToSource与OneWay绑定相反;它在目标更改时更新源数据。
OneTime绑定:该绑定会导致源属性初始化目标属性,但不传播后续更改。如果上下文发生了更改,或者绑定上下文的对象发生了更改,
则更改会反映在目标属性中。此绑定类型实质上是OneWay绑定的简化形式,在源值不更改的情况下可以提供更好的性能。
3、实现数据啊元更改影响目标更改
如果要实现数据源更改时,改变目标的值,需使数据源对象实现SystemComponentModel命名控件的INotifyPropertyChanged接口。
INotifyPropertyChanged接口中定义了一个PropertyChanged事件,在某属性值发生变化时引发此时间,即可通知绑定目标更改其显示的值。
4、实现绑定目标的值更改影响绑定源的值
若实现绑定目标的值更改影响绑定源的值,可以设置相应控件绑定是的UpdateSourceTrigger的值。(PropertyChanged-当绑定目标属性
更改时,立即更新绑定源;LostFocus-当绑定目标元素失去焦点时,更新数据源;Explicit-仅在调用U庞大特Source方法时更新绑定源)
多数依赖项属性的UpdateSourceTrigger值的默认值为PropertyChanged,而Text属性的默认值为LostFocus。
到各种数据源中的数据。
数据绑定涉及到两个方面:一个是绑定源,再一个是绑定目标。绑定源即控件绑定所使用的源数据,绑定目标即数据显示的控件。
1、绑定源:
CLR对象:可以绑定到CLR类的公开的属性、子属性、索引器上
ADO.Net对象:例如DataTable、DataView等
XML文件:使用XPath进行解析
DependencyObject:绑定到其依赖项属性上,即控件绑定控件
2、绑定的基本方式
OneWay:绑定导致对源属性的更改会自动更新目标属性,但是对目标属性的更改不会传播回源属性。此绑定类型适用于绑定的控件为隐式
只读控件的情况。
TwoWay:绑定导致对源属性的更改会自动更新目标属性,而对目标属性的更改也会自动更新源属性。此绑定类型适用于可编辑窗体或其他
完全互式UI方案。(确定依赖项属性绑定在默认情况下是单向还是双向的编程方法是:使用GetMetadata获取属性的属性元数据,然后检查
BindsTwoWayByDefault属性的布尔值)
OneWayToSource与OneWay绑定相反;它在目标更改时更新源数据。
OneTime绑定:该绑定会导致源属性初始化目标属性,但不传播后续更改。如果上下文发生了更改,或者绑定上下文的对象发生了更改,
则更改会反映在目标属性中。此绑定类型实质上是OneWay绑定的简化形式,在源值不更改的情况下可以提供更好的性能。
3、实现数据啊元更改影响目标更改
如果要实现数据源更改时,改变目标的值,需使数据源对象实现SystemComponentModel命名控件的INotifyPropertyChanged接口。
INotifyPropertyChanged接口中定义了一个PropertyChanged事件,在某属性值发生变化时引发此时间,即可通知绑定目标更改其显示的值。
4、实现绑定目标的值更改影响绑定源的值
若实现绑定目标的值更改影响绑定源的值,可以设置相应控件绑定是的UpdateSourceTrigger的值。(PropertyChanged-当绑定目标属性
更改时,立即更新绑定源;LostFocus-当绑定目标元素失去焦点时,更新数据源;Explicit-仅在调用U庞大特Source方法时更新绑定源)
多数依赖项属性的UpdateSourceTrigger值的默认值为PropertyChanged,而Text属性的默认值为LostFocus。
相关文章推荐
- WPF and Silverlight 学习笔记(二十):WPF数据绑定概述
- wpf 后台绑定数据 binding
- WPF中的数据绑定Data Binding使用小结
- [WPF学习]数据绑定
- WPF学习(8)数据绑定
- 使用数据绑定和 WPF 自定义数据显示
- C#中WPF ListView绑定数据的实例详解
- WPF之数据绑定控件比较
- WPF 中的数据绑定
- WPF中的数据绑定(一)
- [WPF 基础知识系列] —— 绑定中的数据校验Vaildation
- WPF的DataGrid绑定ItemsSource后第一次加载数据有个别列移位的解决办法
- 简便操作WPF数据绑定
- WPF+MVVM数据绑定问题集锦
- WPF学习之数据绑定(转载)
- WPF命令(Command)介绍、命令和数据绑定集成应用
- WPF初探——怎么在其他的线程更新Listview控件绑定的数据
- WPF学习之数据绑定
- WPF中的单实例对象数据绑定
- WPF入门(四)-WPF+LINQ实现数据绑定、交互及简单datagrid样式