INotifyPropertyChanged接口

转载 2015年11月19日 14:47:46

实现INotifyPropertyChanged接口

官方解释:INotifyPropertyChanged  接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。官方解释的很模糊,估计是个人看了都不知道到底什么时候需要实现INotifyPropertyChanged接口.小梦通过实际测试给出明确结论:

首先:OneTime模式:毫无意义,因为它的绑定只有初始时候绑定一次,根本谈不上改变!自然也就谈不上实现INotifyPropertyChanged接口.

然后是OneWay模式:我们知道OneWay模式的含义是:绑定源的每一次变化都会通知绑定目标,但是绑定目标的改变不会改变绑定源.当绑定源的数据实体类没有实现INotifyPropertyChanged接口时,当我们改变了数据源,我们会发现绑定目标的UI上的相应的数据不会立即变化.所以这时候就需要我们来实现INotifyPropertyChanged接口.

最后是TwoWay模式:在TwoWay模式下,当绑定源的数据实体类没有实现INotifyPropertyChanged接口时,我们发现.控件的更改会让数据源立即发改变,但是改变数据源,绑定目标控件却不会立即发生改变!所以当我们需要数据源改变时相对应的UI立即改变时,就需要实现INotifyPropertyChanged接口.

总之:就是当数据源改变并需要UI立即改变时我们需要实现INotifyPropertyChanged接口.

我们可以通过这个示例来明确的体会这一点:

后台代码:

大家运行这个示例可以明显体会INotifyPropertyChanged接口的作用.

 如何实现INotifyPropertyChanged接口

上面示例的INotifyPropertyChanged接口的实现方式是最常见和最普遍的.

我们可以利用CallerMemberNameAttribute特性来简化一下,这个特性可以根据调用方来决定传入哪个属性的名字.:

这样我们在调用时可以这样调用:

  NotifyPropertyChange(“ID”)  改为:OnPropertyChanged();

INotifyPropertyChanged接口的最佳实现方式:

这个所谓的最佳实现方式 是channel 9的视频中说的,实现方式如下:

相应的调用方式进一步简化:

List<T>、ObservableCollection<T>和接口INotifyPropertyChanged

大家在使用Silverlight开发的过程中,一定遇到过集合List、ObservableCollection和接口INotifyPropertyChanged,特别是集合List、Observabl...

WPF进阶之接口:INotifyPropertyChanged,ICommand

INotifiPropertyChanged 1. 作用:向客户端发出某一属性值已更改的通知。该接口包含一个PropertyChanged事件成员(MSDN的解释) INotifyProperty...

WPF:向客户端发出某一属性值已更改的通知INotifyPropertyChanged接口

WPF:向客户端发出某一属性值已更改的通知INotifyPropertyChanged接口

SilverLight 学习笔记--Silverlight中INotifyPropertyChanged 接口在数据绑定中的使用

INotifyPropertyChanged是什么,它有什么作用?通过查阅MSDN我们知道,INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改...

【黑马程序员】数据绑定的INotifyPropertyChanged接口:监听和同步

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 以上篇所述的...

Silverlight中OneTime,OneWay,TwoWay及INotifyPropertyChanged 接口的理解

今天有时间把Silverlight中OneTime,OneWay,TwoWay及INotifyPropertyChanged 接口的理解等数据绑定方面的东西理解学习了下!下面是我的笔记。 (一)前台...

一步一步教你MVVM同时玩转INotifyPropertyChanged和ObservableCollection(转)

文章转载自http://www.cnblogs.com/Jax/archive/2009/10/13/1582128.html 本文的代码都是基于WPF的,对于Silverlight,这些技术也...
  • farcall
  • farcall
  • 2015年08月16日 23:46
  • 882
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:INotifyPropertyChanged接口
举报原因:
原因补充:

(最多只允许输入30个字)