【问题标题】:Can a ViewModel have multiple Models?一个 ViewModel 可以有多个模型吗?
【发布时间】:2013-06-09 23:50:00
【问题描述】:

我正在学习 MVVM 设计模式,并且正在编写一个随机引擎,它可以为多个视图生成随机数。我的一个视图启动和停止引擎,另一个视图获取数字并绘制图表,另一个视图显示数字——所有这些视图都使用相同的 ViewModel。但我的最后一个观点是要取这个数字并判断它是否是素数,然后找出随机引擎生成的所有素数的出现次数。

为此,我编写了一个单独的模型来确定素数。我很好奇我是否可以在一个 ViewModel 下使用 2 个模型。如果不是,你建议我如何解决这个问题?修改模型对我来说没有意义,因为它运行得非常好,并且完美地服务于所有其他客户。有没有其他方法可以在不修改原始模型的情况下做到这一点?

【问题讨论】:

  • 非常相似的问题。查看stackoverflow.com/questions/13085670/…中的答案
  • 只是为了确定,寻找素数的逻辑是在虚拟机中还是在最后一个视图中?
  • @retailcoder 是的,它在一个单独的模型中,但我还需要从 RandomModel 生成的随机数才能使 ViewModel 工作

标签: wpf mvvm


【解决方案1】:

我个人认为 ViewModel 消耗多个模型对象没有问题。我创建了几个使用复合模型对象(分层对象)的视图模型。

在我看来,视图模型驱动视图。模型数据实际上只是用于组成 ViewModel 的数据源。

【讨论】:

  • 我认为你是对的。 MVVM 应该是一个包含所有 3 个元素的简单设计模式,但是从我所看到的设计(图表)和工具包中,通常一个模型链接到许多 ViewModel。我认为这是为了简单起见并防止 ViewModel 变得太大。
【解决方案2】:

可以方便地使用尽可能多的视图模型与视图关联。这种方法没有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 2011-01-30
    • 1970-01-01
    • 2018-03-08
    相关资源
    最近更新 更多