我在 GoF 中读到了观察者 模式书。
.Net Framework 包含INotifyPropertyChanged
接口(interface)。 .Net Framework 是否具有类似的界面,但用于通知属性集合的更改,而不是通知每个属性的更改(为了提高生产力)?
我为我的应用程序创建了这样的接口(interface) INotifySubjectChanged
(它的事件参数包含更改的属性集)但也许 .Net Framework 已经有了它,我发明了一辆自行车。
我在 Bitbucket.org 上发布了我的简单代码源 here .它可能更清楚我想做什么。
最佳答案
MSDN 指出,将属性名称留空意味着对象的所有属性都已更改。
The PropertyChanged event can indicate all properties on the object have changed by using either null or String.Empty as the property name in the PropertyChangedEventArgs.
这可能与您从 .NET 框架中获得的要求一样接近。请注意,在某些情况下,错误地使用它并在更改较少数量的属性时调用它实际上可能会降低性能。
为了记录对象是否是一个集合(您说它不是),您可以利用 INotifyCollectionChanged。
如果您担心性能和效率,我会首先确保您确实遇到了性能问题,并且更改通知导致了这些性能问题。
如果您不关心使用 WPF 数据绑定(bind)的实现,并且它的行为相对清楚,那么我认为自定义接口(interface)和事件没有任何问题。
关于c# - 是否存在用于多个更改的 `INotifyPropertyChanged` 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39469476/