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的视频中说的,实现方式如下:

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

INotifyPropertyChanged接口的简单使用

在做TextBox的数据绑定练习时,如果ReadOnly没有设为True,那在显示界面上更改TextBox的属性值,更改后的值会传递回被绑定的对象属性。但是如果在后台更改被绑定的对象属性值,前台显示界...
  • tansuwei1984
  • tansuwei1984
  • 2013年10月17日 12:12
  • 1072

如何实现INotifyPropertyChanged接口(C#)

下面是实现INotifyPropertyChanged接口的样例程序:  public class Student : INotifyPropertyChanged     {         ...
  • jingxuan84
  • jingxuan84
  • 2013年03月04日 10:56
  • 1600

ObservableCollection和List与INotifyPropertyChanged的使用

ObservableCollection和List的使用场合,分以下四种情况: 1.最简单的是只用List,T不实现INotifyPropertyChanged接口,适用于一次性绑定,适用于重新实例...
  • HFDNGL
  • HFDNGL
  • 2015年10月21日 16:46
  • 554

优雅实现INotifyPropertyChanged接口——利用Lambda表达式

参考文章   在14年的时候,曾经读过上面的参考文章,不过当时并没有怎么理解,慢慢地也就将这篇文章忘诸脑后了。   直到前几天突发奇想,研究如何用Lambda表达式作为构造函数的参数(详见此文),研...
  • honantic
  • honantic
  • 2016年03月02日 14:27
  • 20518

vs中无法导航到INotifyPropertyChanged接口的解决办法

代码段加入 using System.ComponentModel; 就可以了
  • heisedelangzi
  • heisedelangzi
  • 2013年10月11日 17:03
  • 1022

WPF学习笔记:(二)数据绑定模式与INotifyPropertyChanged接口

数据绑定模式共有四种:OneTime、OneWay、OneWayToSource和TwoWay,默认是TwoWay。一般来说,完成数据绑定要有三个要点:目标属性是依赖属性、绑定设置和实现了INotif...
  • bfboys
  • bfboys
  • 2016年09月27日 16:04
  • 385

INotifyPropertyChanged 接口

功能:向客户端发出某一属性值已更改的通知。 命名空间: System.ComponentModel 程序集: System.ObjectModel事件PropertyChanged:在属性值...
  • GongchuangSu
  • GongchuangSu
  • 2015年10月01日 09:50
  • 297

WPF进阶之接口:INotifyPropertyChanged,ICommand

INotifiPropertyChanged 1. 作用:向客户端发出某一属性值已更改的通知。该接口包含一个PropertyChanged事件成员(MSDN的解释) INotifyPropertyCh...
  • huyu107
  • huyu107
  • 2016年04月28日 15:52
  • 331

关于InotifyPropertyChanged接口

最近使用WPF访问SQL数据库,第一次使用到InotifyPropertyChanged接口,感觉它特别好用,学习到一些东西。附上部分是实现代码。 using System; using Syst...
  • laoshuijia_xiaoshui
  • laoshuijia_xiaoshui
  • 2015年04月22日 10:35
  • 75

WPF INotifyPropertyChanged接口

当绑定数据源的某属性值改变时,它可以通知客户端,并进行界面数据更新.而我们不用写很多复杂的代码来更新界面数据,这样可以做到方法简洁而清晰,INotifyPropertyChanged确实是一个强大的接...
  • daividtu
  • daividtu
  • 2016年01月11日 09:04
  • 352
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:INotifyPropertyChanged接口
举报原因:
原因补充:

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