假设我有一个 View 。它的 DataContext
绑定(bind)到 ViewModel
并且 ViewModel
公开了一个 Model
属性。
MVVM
是否喜欢将View
中的字段绑定(bind)到Model
中的属性(例如Binding Path=Model.FirstName
)?Model
是否应该实现INotifyPropertyChanged
?
我的团队在 WPF 中使用 Prism 和 MVVM。许多 Prism 示例间接绑定(bind)到 Model
。我个人怀疑这是正确的方法。我认为模型中的内容应该公开行为(不仅仅是在属性级别)并且应该通过,呃,event
s 来传达重要事件 - 客户可以订阅或不订阅.
我认为通过让域/模型对象实现 INotifyPropertyChanged
以某种方式告诉世界它是 UI/UX 感知的,并且在某种程度上在 ViewModel
中引入了一些冗余。
你怎么看?什么对你有用? View
/ViewModel
/Model
或 Prism 示例使用的混合体之间有明确的区别吗?
最佳答案
我见过很多人实现 INotifyPropertyChanged
直接在他们的Model
同样,我在 ViewModel
中看到有人这样做
我更喜欢在 INotifyPropertyChanged
中执行此操作(实现 ViewModel
) .我同意你的看法,它有时会在 ViewModel
中产生冗余但我更喜欢 ViewModel
之间的明确区分/分离和 Model
以及他们的目的应该是什么。给我Model
字面意思就是 Model
.它只是我的 Business Data
的代表仅此而已。对我来说,它不应该导致 View
发生任何变化。 (通过通知属性更改事件)。 View
应该与 ViewModel
交谈和 ViewModel
应该使用 Model
.我不喜欢 View 直接影响 Model
.我不喜欢使用 Model.FirstName
因为对我来说这似乎违背了MMVM
通过告诉View
Model
里有什么
关于c# - View 是否应该间接绑定(bind)到 MVVM 模型中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8907722/