我试图创建一个系统,用户界面不会更新每次我的业务对象之一的属性发生更改,而是仅以受控方式更新。用于UI更新的替代INotifyPropertyChanged
这是我的推理:
业务对象被更新,许多每秒数百次,但在我看来,用户确实只需要看到一个更新每隔250左右毫秒。我正在考虑让计时器每250毫秒运行一次,并且每次它都会调用一个方法来告诉UI它需要刷新自己。
用户界面相当大,我想这样做的唯一控制就是刷新自己将是目前正在查看的用户。
我知道了INotifyPropertyChanged
模式,但不会这种不必要的更新UI每次什么东西被更新?
我试过使用.RefreshDataSource()
,但我想知道是否有更好的方法?
我认为这就是我要做的 - 如果我要调用“NotifyPropertyChanged()”(不传入属性的名称)会发生什么?当我做了测试时,它似乎仍然有效 - 如果您传递的字符串与任何属性都不匹配,是否更新所有这些属性? – William 2012-04-12 20:50:01
[MSDN](http://msdn.microsoft.com/zh-cn/library/system.componentmodel.inotifypropertychanged.propertychanged.aspx ):* PropertyChanged事件可以通过使用Nothing或String.Empty作为PropertyChangedEventArgs中的属性名称来指示对象上的所有属性已更改。* 这是在NotifyPropertyChanged方法中调用的常用方法。在每个财产的每个制定者中提出这个事件我不知道为什么,因为首先这个事件只会引发一次,其次你只能使用th e {get; set;}语法,这意味着更少的代码。 – 2012-04-12 22:06:12
我的意思是说,如果你用'String.empty'调用方法,事件就会被提升一次。这取决于。如果你只是用一个特定的动作更新你的整个UI,传递string.Empty可能会更好。 如果你不想在一个属性被修改的时候更新你的整个UI,我认为把NotifyPropertyChanged方法放在每一个都更好。 – 2012-04-12 22:19:46