棱镜 MVVM 结构

Prism MVVM Structure

我开始学习 C#,目前正在学习一些 Prism。 我在整个项目结构和界面上遇到了一些困难。你们能帮帮我吗?

我了解到所有 ViewModel 实现 都继承了 BindableBase 接口。但是模型呢?

IE:我有一个员工模型。它具有我的 Class 属性以及我的 Sets 和 Gets 以及 OnPropertyChanged 实现。对吗?

Model implements INotifyPropertyChanged and ViewModel implements 继承 BindableBase?

BindableBase 是来自 Prism 的基础 class,用于您的 viewmodels/models。此基础 class 可帮助您实现 INotifyPropertyChanged 并提供 SetProperty 方法以确保您不会忘记触发事件。您可以自己实现 INotifyPropertyChanged 并调用 OnPropertyChanged 方法,但何必呢。

您可以讨论模型是否应该实现 INotifyPropertyChanged(单独实现,或者继承自 BindableBase)。

只要您的数据可以通过前端或后端进行更改,并且 UI(或任何其他监视更改的系统)需要 notified/updated,就最容易实现 INotifyPropertyChanged(/使用 BindableBase)。如果您的模型中的某个类型始终是只读的,您可以不使用该接口,但在我看来,大多数情况下这是不值得的(如果有一天它不再是只读的并且您有更新错误怎么办)。

您可以在 Prism documentation.

中阅读更多关于 MVVM 模式和 INotifyPropertyChanged 的​​内容