【问题标题】:Why does the ViewModel should implement INotifyPropertyChanged?为什么 ViewModel 应该实现 INotifyPropertyChanged?
【发布时间】:2017-03-09 18:16:06
【问题描述】:

考虑到只有用户通过用户界面更新ViewModels/Models的情况,没有外部访问显示的数据。

在这种情况下,为什么 ViewModel 应该实现 INotifyPropertyChanged

只有在外部访问数据时,我才有意义让ViewModel 实现它,以便必须以某种方式通知 UI 关于外部启动的属性更改并且您设置了 Mode=TwoWay/@ 987654327@.
我看到的大多数示例 MVVM 实现从不订阅 anythingViewModelsPropertyChangedEventHandler,但仍然实现它,只是因为 必须完成,因为它是 mvvm

【问题讨论】:

  • 考虑两个文本框链接到同一属性的示例。当 textbox1 改变时, textbox2 应该同步到它。
  • 您不需要订阅任何视图模型 PropertyChangedEventHandler,这是通过使用将执行订阅的绑定来完成的。
  • 我猜如果您的应用程序只输入数据,那么可能。但这是一个非常无聊的应用程序。你没有数据验证?集合永远不会拒绝输入?
  • 听起来您还没有编写 MVVM 应用程序,因为当您编写时,您确实希望 UI 在应用程序状态发生变化时更新。

标签: c# wpf mvvm data-binding inotifypropertychanged


【解决方案1】:

如果用户更改视图中的一项,它可能会影响视图模型中的多个项目,或者它可能会影响视图模型中一项的状态,进而影响视图中多个项目的呈现。

我不得不转过头来问,鉴于上述陈述,您为什么不实施 INotifyPropertyChanged?这几乎不是一个巨大的开销。

【讨论】:

    猜你喜欢
    • 2010-10-20
    • 2023-04-02
    • 2019-09-25
    • 2015-09-29
    • 2016-06-13
    • 1970-01-01
    • 2015-07-28
    • 2012-01-28
    • 2021-10-02
    相关资源
    最近更新 更多