WPF 值绑定binding (中)----什么才能骄傲的成为绑定源

1 什么可以作为绑定源:

A .特定的属性  B.指定为集合   C .ObjectDataProvider D .XmlDataProvider    E 等


DependencyObject

在WPF中,软件开发人员所常接触的大部分类型都派生自DependencyObject,因此派生自DependencyObject的类型非常适合在UI层中作为绑定源。DependencyObject。该类默认提供了对绑定的支持。软件开发人员可以在该类型的派生类中使用DependencyProperty.Register()等众多函数实现可绑定属性。但由于并不是所有的WPF类型都派生自DependencyObject,而且DependencyObject上的所有属性并不全是DependencyProperty,因此在使用一个类型及属性之前,软件开发人员需要检查该类型是否派生自DependencyObject,而该属性是否在该类型中拥有相应的DependencyProperty。

  WPF只是一个UI 类库,而如果软件需要绑定使用非UI层的属性,那么从DependencyObject类派生并不是一个好的选择。正确的做法则是从INotifyPropertyChanged接口派生。实现了该接口后,类型实例可作为绑定源使用。

做法一: DependencyObject的继承

A.Register()等函数注册一个static readonly的DependencyProperty

B.GetValue()以及SetValue() 

做法二:实现INotifyPropertyChanged接口

A 声明PropertyChanged事件。绑定将侦听该事件并在事件发出后执行。

B  由于基类中的事件只能用来添加及删除侦听函数,因此软件开发人员需要提供一个派生类可访问的包装函数,以允许派生类发出PropertyChanged事件。该包装函数一般被命名为NotifyPropertyChanged(),并常常接受一个string类型的参数。

C 实现相应属性。在属性的访问符实现中,软件开发人员需要在属性的实际值发生更改后调用NotifyPropertyChanged()。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值