代码之家  ›  专栏  ›  技术社区  ›  Ben Gribaudo

两个视图模型之间的主细节分割:将取消命令逻辑放在何处?

  •  2
  • Ben Gribaudo  · 技术社区  · 14 年前

    窗口的主节包含数据网格。详细信息部分显示一个窗体,允许编辑当前在主数据网格中选择的记录。网格的SelectedItem绑定到主vm。当该属性更改时,主vm将创建一个新的EditViewModel,并通过属性将其公开。视图的details部分使用此属性作为其DataContext。

    当实现像cancel这样的命令时,您会将它们放在master或details视图模型中吗?

    谢谢您,

    编辑

    3 回复  |  直到 14 年前
        1
  •  5
  •   kiwipom    14 年前

    我认为你的第二个论点比第一个论点有力得多。

        2
  •  2
  •   David Hall    14 年前

    我同意Ian的回答,但我个人认为UI逻辑和模型逻辑之间的区别很重要。

    因此,如果此时删除主要来自UI列表,那么将删除放在集合VM中是非常有意义的。

    一旦您开始讨论使用模型(例如从数据库中删除记录),那么这些记录可能就是这个逻辑的正确位置。

        3
  •  0
  •   Jose    14 年前

    每一张唱片只知道它自己。它甚至不应该意识到它是一个集合的一部分,它本身就是一个实体。主VM有一个记录集合,因此它应该负责修改。