【问题标题】:View model , Model where to implement INotifyPropertyChanged查看模型,模型在哪里实现 INotifyPropertyChanged
【发布时间】:2013-10-20 17:07:31
【问题描述】:

这是How to use association class? 中提到的问题的延续。现在的问题是

我有一个 wpf UI,我正在使用 MVVM 模式来完成所有事情,其中​​

  1. 在第一页我应该能够配置教师(添加/删除/更新)。教师类中的属性可能是 Name 和 Id。

  2. 在第二页中,我应该能够配置学生并为学生选择老师。

  3. 在第三页我应该能够为学生配置科目。

  4. 在第四页中,我应该能够为每个学生及其学科配置学习伙伴。

因此,如果您看到第二页取决于第一页中所做的配置,因为教师信息基于第一页。

第三页依赖于第二页,因为只有在第二页创建学生列表后,然后在第三页分配科目。(这里的科目列表是静态的,无需配置。)

第四页取决于第二页和第三页,因为第二页配置了学生信息(因为学习伙伴是学生自己),第三页配置了学生的学科信息。

我的模型定义并返回此 Student、Teacher、Subject、StudyPartners 信息到视图模型。所有这些类(业务对象)都应该实现 INotifyPropertyChanged 接口吗?因为我相信 UI 特定的东西应该只在 viewmodel 而不是 model 中可用。如果是这种情况下如何处理更改通知,我们是否需要为视图模型中的所有这些类创建一个包装器并实现此属性更改通知?如果我们在业务对象数量增加的情况下这样做,它会不会成为视图模型中的太多包装器?如何解决这个问题?我是否在设计层面犯了任何错误,还是应该在 UI 层面关注所有这些事情?

任何帮助表示赞赏,在此先感谢。

【问题讨论】:

标签: c# wpf mvvm


【解决方案1】:

我一直在模型上实现它。

  • 在使用数据库后端或文件系统后端时,我主要有另一个较低级别的模型。所以视图上使用的模型只是用于显示数据。
  • INotifyPropertyChanged 界面并不完全限于用户界面。你可以用它做很多事情。 WPF 只使用它,但您也可以在数据库或文件系统等较低级别上使用它。

前段时间有人问过一个类似的问题:In MVVM should the ViewModel or Model implement INotifyPropertyChanged?,你可以看到也有很多不同的意见。

【讨论】:

  • 我可以理解这个话题的答案是非常主观的。我想可能是因为我的情况可能有一些具体的原因说明在哪里执行属性通知。无论如何,非常感谢您提供的信息。
猜你喜欢
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
  • 2011-07-14
  • 2011-10-18
  • 1970-01-01
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多