【问题标题】:Good practice to store RelayCommand in MVVM在 MVVM 中存储 RelayCommand 的好习惯
【发布时间】:2012-01-12 22:49:19
【问题描述】:

我需要为 ViewModel 设置不同的命令,例如关闭、编辑、取消、ShowPic、ShowVideo。
根据我拥有的不同 ViewModel,我有常见的命令,如关闭、编辑、取消,它们执行相同的操作,只有上下文可以不同。然后对于其他的像 ShowPic, ShowVideo 他们属于他们自己的视图模型。

在这种情况下,如何组织你的命令是一种好的做法:

  1. 您是否将它们全部放在一个单独的类中,称为“命令”?
  2. 您是否将它们放置在各自的 ViewModel 中,甚至有些是常见的?
  3. 您是否将常用命令与其他命令分开?

感谢您的建议和示例,您将如何组织它们。

【问题讨论】:

    标签: wpf command viewmodel mvvm-light


    【解决方案1】:

    答案是“2”。

    即使其他 ViewModel 具有相同的命令,您的注入服务(如果您不知道我在说什么,请阅读“IoC”)在您的 ViewModel 中执行繁重的工作并允许您避免冗余逻辑。

    【讨论】:

      【解决方案2】:

      某些特定于视图的命令(例如打印、保存等具有独立于视图的通用功能)可以在带有ExecuteCanExecute 处理程序的某些静态Uility 类中声明为静态,并且可以是在 XAML 中使用 x:Static 属性绑定。

      但是特定于视图的命令应该驻留在ViewModel 中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-17
        • 1970-01-01
        • 1970-01-01
        • 2012-05-18
        • 2016-05-23
        • 2020-05-27
        • 1970-01-01
        相关资源
        最近更新 更多