代码之家  ›  专栏  ›  技术社区  ›  Jobi Joy

wpf mvvm-单个propertychanged能否更新数据模板的所有数据绑定?

  •  23
  • Jobi Joy  · 技术社区  · 15 年前

    我有一个viewModel类,它有大量的属性(比如50)。一旦将数据设置为所有属性,我就需要更新UI。我知道共同的解决办法是提高 属性更改 在所有属性设置器上。

    我想知道是否有任何方法可以通知我的数据模板通过单个通知更新其所有绑定?一种方法是使用isloaded属性来引发propertyChanged,但如何使用它更新整个datatemplate。我对这个问题的完整XAML解决方案感兴趣。

    2 回复  |  直到 15 年前
        1
  •  49
  •   Jobi Joy    15 年前

    最后我得到了我同事的答复 Josh Smith ,这很简单,我们只需要用 空或字符串。空 作为属性名。这将告诉WPF绑定系统重新评估该对象的所有绑定。我用这个有两大优势。

    1. 在每个属性上引发单个事件的开销将从视图模型减少到UI中的一个事件。性能 会增加的。
    2. 在编写代码时,我们只需使用get;set;语法,这是一种干净而简单的语法。 写作

    假设:在这个问题上,我假设这是一个非常特殊的条件,在这个条件下,所有的属性都会同时更新。

    我有一个 blogpost discussing this here

    更新:基于KEK444的评论

        2
  •  0
  •   jason    15 年前

    我认为这个问题不值得去解决。也就是说,我认为这里的解决方案是让各个属性在设置时发送属性更改通知。如果不是,当一个单独的财产(但不一定全部是五十个)发生变化时,你会怎么做?