我们自己的代码应该订阅PropertyChanged吗?

时间:2012-06-11 08:18:07

标签: c# wpf events inotifypropertychanged

我们有许多数据对象可以实现INotifyPropertyChanged以允许WPF绑定更新。我们的代码订阅PropertyChanged的地方也很多,因为我们对某些价值更新感兴趣。

这会产生非常丑陋的代码,我们需要检查哪个属性实际发生了变化(我们使用Expressions这样做,所以它总是类型/重构安全)。

我们想要订阅特定事件(PriceChanged等等),或挂钩到PropertyChanged并检查属性名称时,是否会优先提出?

1 个答案:

答案 0 :(得分:2)

如果您要订阅的许多属性不是很大,我会创建专用事件,因为它们在可读性和可发现性方面更好。

但是,如果有很多属性,答案就不那么明显了。我通常通过应用Observer Synchronization模式(订阅模型更改而不是ViewModel)来避免这种情况。它可以帮助我保持虚拟机的存储。