【问题标题】:MVVM viewmodel and model questionsMVVM 视图模型和模型问题
【发布时间】:2013-04-06 13:41:56
【问题描述】:

我正在尝试学习 MVVM,但我在区分模型和视图模型方面有点挣扎。

如果有人能回答这两个问题,那对我来说会大有帮助:

假设我有一个 Objects 类,它是一个包含多个 Object 的 ObservableCollections 的视图模型。 Object 类包含显示在 GUI 上的字符串的 ObservableCollection。

Object 类是模型还是视图模型?

如果Object 类只包含一个字符串和一个整数(名称和值),它是模型还是视图模型?

【问题讨论】:

  • 值得记住的是,你可以只有一个模型和一个视图,你不必有一个视图模型。

标签: mvvm


【解决方案1】:

Model 是保存您的数据 的类。数据可以是字符串/整数或其他。 Model 也可以是这些对象的列表/集合。例如,Person 对象列表仍然可以是您的Model。

ViewModel 是您的模型和视图之间的层。它应该用于在数据上执行您需要的任何任务(例如,如果您的模型是 Person 对象的列表,但您只想在视图中显示年龄超过 18 岁的人,则此逻辑在ViewModel)

所以回答你的问题:

如果您有一个包含 data 的对象(在您的示例中为字符串列表),则它是 Model。 即使对象稍微复杂一点(与它所拥有的属性数量有关),它也可能仍然是模型。
业务逻辑应该与模型分开。另一方面,Validation 可以添加到模型中(例如,确保一个人的 Age 属性是非负的),因为这仍然是您的 数据应该表现

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 2012-08-06
    • 1970-01-01
    相关资源
    最近更新 更多