MSDN指出,将属性名称留空意味着对象上的所有属性都已更改。
通过在PropertyChangedEventArgs中使用null或String.Empty作为属性名称,PropertyChanged事件可以表明对象上的所有属性都已更改。
这可能是你从.NET框架中得到的最接近你所要求的内容。请注意,在错误使用并在较少数量的属性更改时调用它可能会在某些情况下降低性能。
如果对象是一个集合(你说它不是),则可以利用INotifyCollectionChanged。
如果您关心性能和效率,请首先确保您实际上正在遇到性能问题,并且更改通知导致这些性能问题。
如果您不关心实现是否与WPF数据绑定一起工作,并且其行为相对清晰,则我认为自定义接口和事件没有任何问题。
using
),在处理完成后调用 OnPropertyChanged(this, new PropertyChangdEventArgs(null))
。 - user57508Dispose
方法中,只是另一种调用 user.StuffDone()
的方式,除了创建一个明确的作用域 :) - user57508
INotifyPropertyChanged
。 - O. R. MapperINotifyCollectionChanged
不能让我知道更改属性的名称。 - Andrey BushmanUser
实体时,没有使用using (....GetNotificator())
创建块/作用域 - 因此你的代码在例如WPF中无法工作。不管怎样,我相信这是你试图解决的一个具体问题,并没有被.NET框架所捕获(它有一个更通用的方法)。 - user57508