c# - View 是否应该间接绑定(bind)到 MVVM 模型中的属性?

标签 c# wpf mvvm prism

假设我有一个 View 。它的 DataContext 绑定(bind)到 ViewModel 并且 ViewModel 公开了一个 Model 属性。

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

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

我认为通过让域/模型对象实现 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/

相关文章:

c# - 如何在 ConfigureServices 方法中使用 ASP.NET Core 2.1 读取用户环境变量?

c# - 如何将运行时的测试用例结果调用到另一个文件以更新 testRail 中的测试用例结果?

c# - wpf性能问题: Opacity on Brushes vs Opacity on Elements

c# - WPF 和 MJPEG 解码器帮助

c# - 绑定(bind)仅适用于第一个 TabItem

c# - WPF 加载微调器

java - 将数据对象从 xml 发送到 viewmodel

c# - 纵向视频录制在 Windows Phone 8 中以 90 度旋转形式出现

c# - WPF 执行时找不到本地资源

c# - 首先了解 Entity Framework 代码中的 ForeignKey 属性