【发布时间】:2011-11-15 07:50:07
【问题描述】:
我正在为我的应用程序使用 MVVM 模式。该模型实际上并行运行一组测试,并保留测试状态(包括其结果)的标签。我希望在视图中显示状态和结果。我一直在设计视图模型。
问题是模型中有很多类和子类层次结构,所有需要在视图中显示的数据都存储在其中。这些数据是动态的。 我现在不确定如何设计视图模型。
我一直在考虑这些思路 - 在视图模型中创建一个新的数据结构,它反映要在视图中显示的内容,并获取所有视图模型将挖掘模型以获取所需的数据。在这种情况下,我很困惑模型将如何在数据更改时更新视图模型。或者考虑到数据存储在不同的类和子类中,模型和视图模型如何相互通信。
【问题讨论】:
-
您的模型可以在更改状态时触发事件吗?理想情况下,模型是愚蠢的,并且被其他东西操纵。他们不应该自我变异。
-
实际上,我一次可以运行多个测试 - 因此基本上一次可以运行多个模型,用户可以选择查看哪些数据。我可以让模型在它发生变化时触发。如果模型被认为是愚蠢的 - 我的设计有问题吗?运行测试的逻辑是否应该驻留在 VM 中?
-
每个模型都需要有一个与之对应的视图模型来处理事件并触发其自己的通知属性发生变化,然后您就可以拥有一个可以包含这些子视图模型的父视图模型。