替代 INotifyPropertyChanged 用于 UI 更新
本文关键字:更新 UI 用于 INotifyPropertyChanged 替代 | 更新日期: 2023-09-27 18:31:08
我正在尝试创建一个系统,其中用户界面不会在每次更改我的一个业务对象的属性时更新,而是仅以受控方式更新。
这是我的推理:
-
业务对象每秒更新数百次,但在我看来,用户实际上只需要每 250 毫秒左右查看一次更新。 我正在考虑有一个计时器,每 250 毫秒经过一次,每次经过时都会调用一个方法来告诉 UI 它需要自行刷新。
-
UI 相当大,我想这样做,以便唯一会刷新自己的控件将是用户当前正在查看的控件。
我知道INotifyPropertyChanged
模型,但每次更新任何内容时,这不会不必要地更新 UI 吗?
我尝试使用.RefreshDataSource()
,但我想知道是否有更好的方法?
我知道 INotifyPropertyChanged 模型,但每次更新任何内容时,这不会不必要地更新 UI 吗?
好吧,只要您在属性的 setter 中调用 NotifyPropertyChanged("PropertyName")
,该属性显示在 UI 上。因为这实际上强制 UI 在每次再次设置属性时更新 - 这意味着每个属性每秒更新数百次。您还可以在方法中调用NotifyPropertyChanged("PropertyName")
,每次计时器经过时都会调用该方法。因此,无需使用RefreshDataSource()
代替INotifyPropertyChagend
。
您可以选择何时调用 NotifyPropertyChange - 为什么不创建一个基类,通过抑制频繁调用来实现 INotifyPropertyChanged?