我正在尝试学习 MVVM,并且在区分模型和视图模型方面有点挣扎。
如果有人能回答这两个问题,那对我来说会很有帮助:
假设我有一个Objects
类,它是一个包含多个 ObservableCollections 的视图模型Object
。该类Object
包含显示在 GUI 上的字符串的 ObservableCollection。
类是Object
模型还是视图模型?
如果Object
类只包含一个字符串和一个整数(名称和值),它是模型还是视图模型?
我正在尝试学习 MVVM,并且在区分模型和视图模型方面有点挣扎。
如果有人能回答这两个问题,那对我来说会很有帮助:
假设我有一个Objects
类,它是一个包含多个 ObservableCollections 的视图模型Object
。该类Object
包含显示在 GUI 上的字符串的 ObservableCollection。
类是Object
模型还是视图模型?
如果Object
类只包含一个字符串和一个整数(名称和值),它是模型还是视图模型?
Model
是保存您的数据的类。数据可以是字符串/整数或其他。Model
也可以是这些对象的列表/集合。例如,Person
对象列表仍然可以是您的Model
.
这是您的模型和视图之间ViewModel
的层。它应该用于对数据执行您需要的任何任务(例如,如果您的模型是对象列表,但您只想在视图中显示年龄超过 18 岁的人,则此逻辑在 中完成)Person
ViewModel
所以回答你的问题:
如果您有一个包含数据的对象(在您的示例中为字符串列表),则它是Model
. 即使对象稍微复杂一点(与它拥有的属性数量有关),它也可能仍然是模型。
业务逻辑应该与模型分开。另一方面,可以将验证 添加到模型中(例如,确保一个人的属性是非负的),因为这仍然是关于数据应该如何表现的规则Age