WPF MVVM - 一个单一的PropertyChanged可以更新DataTemplate中的

2019-06-26 01:42发布

我有具有大量的属性(比如50)的ViewModel类。 一旦数据被设置到所有属性我需要更新UI。 我知道,常见的解决方案是提高的PropertyChanged上的所有属性setter。

我想知道是否有任何方法可以让我通知我的DataTemplate更新通过单一通知其所有绑定? 一种想法是有其引发的PropertyChanged,但我怎么可以用它来更新整个的DataTemplate一个IsLoaded属性。 我感兴趣的总XAML解决这个。

Answer 1:

最后,我已得到我的同事回答约什-史密斯 ,这是非常简单的,我们只需要使用null或作为的String.Empty属性名提出一个PropertyChanged事件。 它会告诉WPF的绑定系统重新评估所有对象的绑定。 我得到两个主要优势,而用这个。

  1. 提高对每个属性的单个事件的开销将减少从视图模型只是一个事件的UI。 性能将得到提高。
  2. 在编写代码,我们可以只使用{获取;集;}语法是干净的,少写

假设:正如问题,我这里假设它是在我的所有属性都在同一时间得到更新一个非常特殊的条件

我有一个博客帖子在这里讨论这个

更新:基于从kek444评论



Answer 2:

我不认为这值得尝试解决问题。 也就是说,我认为这里的解决方案是因为它们设置的各个属性发送属性更改通知。 如果不是,那你打算怎么办时,个人财产(但不一定是所有五十个)的变化?



文章来源: WPF MVVM - Can a single PropertyChanged update all the Data bindings of a DataTemplate?