我有一个ViewModel类,它有很多属性(Say 50)。将数据设置为我需要更新UI的所有属性。我知道常见的解决方案是在所有属性设置器上引发 PropertyChanged 。
我想知道是否有任何方法可以通过单个通知通知我的DataTemplate更新其所有绑定?一个想法是使用IsLoaded属性来提高属性,但是如何使用它来更新整个DataTemplate。我对整个XAML解决方案感兴趣。
答案 0 :(得分:49)
最后我得到了我的同事Josh Smith的答案,这很简单,我们只需要用 null或String.Empty 作为财产名称。这将告诉WPF绑定系统重新评估该对象的所有绑定。使用它时,我获得了两大优势。
假设:正如我在这里假设的那样,这是一个非常特殊的条件,我的所有属性都会同时更新
我有blogpost discussing this here
更新:根据kek444的评论
答案 1 :(得分:0)
我不认为这是一个值得尝试解决的问题。也就是说,我认为这里的解决方案是让各个属性在设置时发送属性更改的通知。如果没有,当一个单独的财产(但不一定是所有五十个)改变时你打算做什么?