【问题标题】:Should our own code subscribe to PropertyChanged?我们自己的代码应该订阅 PropertyChanged 吗?
【发布时间】:2012-06-14 03:32:27
【问题描述】:

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

这会导致代码非常丑陋,我们需要检查哪些属性实际更改了(我们使用表达式来执行此操作,因此它始终是类型/重构安全的)。

是在我们想要订阅它时引发特定事件(PriceChanged 等...),还是挂钩到 PropertyChanged 并检查属性名称?

【问题讨论】:

  • 顺便说一句,如果您使用自己的事件,您可以随时添加bool 来表示该值是否实际更改或是否刚刚写入。您还可以在事件包中提供之前和之后的值。

标签: c# wpf events inotifypropertychanged


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 2012-05-30
    • 2010-10-24
    • 1970-01-01
    相关资源
    最近更新 更多