替代 INotifyPropertyChanged 用于 UI 更新

本文关键字:更新 UI 用于 INotifyPropertyChanged 替代 | 更新日期: 2023-09-27 18:31:08

我正在尝试创建一个系统,其中用户界面不会在每次更改我的一个业务对象的属性时更新,而是仅以受控方式更新。

这是我的推理:

  1. 业务对象每秒更新数百次,但在我看来,用户实际上只需要每 250 毫秒左右查看一次更新。 我正在考虑有一个计时器,每 250 毫秒经过一次,每次经过时都会调用一个方法来告诉 UI 它需要自行刷新。

  2. UI 相当大,我想这样做,以便唯一会刷新自己的控件将是用户当前正在查看的控件。

我知道INotifyPropertyChanged模型,但每次更新任何内容时,这不会不必要地更新 UI 吗?

我尝试使用.RefreshDataSource(),但我想知道是否有更好的方法?

替代 INotifyPropertyChanged 用于 UI 更新

我知道 INotifyPropertyChanged 模型,但每次更新任何内容时,这不会不必要地更新 UI 吗?

好吧,只要您在属性的 setter 中调用 NotifyPropertyChanged("PropertyName"),该属性显示在 UI 上。因为这实际上强制 UI 在每次再次设置属性更新 - 这意味着每个属性每秒更新数百次。您还可以在方法中调用NotifyPropertyChanged("PropertyName"),每次计时器经过时都会调用该方法。因此,无需使用RefreshDataSource()代替INotifyPropertyChagend

您可以选择何时调用 NotifyPropertyChange - 为什么不创建一个基类,通过抑制频繁调用来实现 INotifyPropertyChanged?