视图是否应间接绑定到 MVVM 中模型中的属性

本文关键字:MVVM 模型 属性 绑定 是否 视图 | 更新日期: 2023-09-27 18:20:33

假设我有一个视图。 它DataContext绑定到ViewModelViewModel公开Model属性。

  • View中的字段绑定到Model中的属性是否MVVM喜欢(例如 Binding Path=Model.FirstName (?
  • Model应该实施INotifyPropertyChanged吗?

我的团队正在WPF中使用Prism和MVVM。 许多棱镜示例间接绑定到Model。 我个人怀疑这是正确的方法。 我认为模型中的内容应该暴露行为(不仅仅是在属性级别(,并且应该通过,呃,event s传达重要事件 - 客户可以订阅或不订阅。

我认为,通过让域/模型对象实现INotifyPropertyChanged以某种方式向世界表明它是 UI/UX 感知的,并且在 ViewModel 中引入了一些冗余。

你觉得怎么样? 什么对你有用? Prism 示例中使用的 View/ViewModel/Model 或混合体之间的明确区别?

视图是否应间接绑定到 MVVM 中模型中的属性

我看到很多人直接在他们的Model中实现INotifyPropertyChanged,同样我也看到人们在ViewModel中这样做。

我更喜欢并在ViewModel中执行此操作(实现INotifyPropertyChanged(。我同意你的看法,它有时会在ViewModel中造成冗余,但我更喜欢ViewModelModel之间的明确区分/分离以及它们的目的应该是什么。对我来说,Model只是字面上的Model.它只是我Business Data的代表性,仅此而已。对我来说,它不应该引起View的任何变化(通过通知属性更改事件(。 View应该与ViewModel交谈,ViewModel应该使用Model。我不喜欢视图直接影响Model。我不喜欢使用Model.FirstName,因为对我来说,告诉View Model中的内容似乎违背了MMVM