【问题标题】:Implementing INotifyPropertyChanged in a Model that is exposed in a collection [duplicate]在集合中公开的模型中实现 INotifyPropertyChanged [重复]
【发布时间】:2013-03-12 09:32:26
【问题描述】:

我在 ObservableCollection 中公开了一个 Model 类,该类使用 DataTemplate 设计,其中处理 Model 的属性绑定。

当我在 Model 类中手动实现 INotifyPropertyChanged 接口时,ObservableCollection 中的绑定属性不会自动更改,只有在重新渲染集合后才会更改。

当我从 ViewModelBase(一个 MVVM Light 工具包类)继承并使用 RasiePropertyChanged 方法时,绑定的属性会自动更改而不刷新整个集合。

除了实现 INotifyPropertyChanged 接口之外,ViewModelBase 还能做什么?

【问题讨论】:

  • 提供一些源代码通常很有帮助!

标签: c# wpf mvvm mvvm-light


【解决方案1】:

MVVM Light Toolkit 中的 ViewModelBase 为您提供了一些额外的帮助程序,例如 IsInDesignModeMessengerInstance

连同实现INotifyPropertyChanged

现在在模型中,如果您只想实现 INotifyPropertyChanged 而不是自己尝试实现,只需从 ObservableObject 派生即可

ObservableObject 也来自 MVVM Light 工具包,它只执行 INPC 实现,没有修剪使其非常适合模型。

如果您在 Visual Studio 中查看 ViewModelBase 的定义,它会继承 ObservableObject 本身

【讨论】:

    猜你喜欢
    • 2014-09-30
    • 2017-12-07
    • 1970-01-01
    • 2012-02-29
    • 2011-10-18
    • 1970-01-01
    • 2011-07-14
    • 2011-12-19
    • 2021-06-29
    相关资源
    最近更新 更多