1

这是如何使用关联类中提到的问题的延续?. 现在的问题是

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

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

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

  3. 在第三页中,我应该能够为学生配置主题。

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

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

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

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

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

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

4

1 回答 1

1

我一直在模型上实现它。

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

前段时间提出的类似问题:在 MVVM 中,ViewModel 或 Model 是否应该实现 INotifyPropertyChanged?正如你所看到的,也有很多不同的意见。

于 2013-10-20T17:14:55.130 回答