【问题标题】:Execute same command from different views - MMVM从不同的视图执行相同的命令 - MMVM
【发布时间】:2012-05-15 04:13:57
【问题描述】:

我很少有视图以不同的方式(网格、文本框等)在应用程序的不同位置表示相同的数据。 每个视图都绑定到不同的 View-Model。

我在选定的行上有一个命令,如 Add-New、Update、Delete 等。这些命令可以从主工具栏(不同的视图)、该视图上的按钮、右键菜单和其他一些地方在活动视图上执行。 我不想为命令可能出现的每个场景重写命令。 有没有其他方法可以在不重复命令代码且无需针对每个场景进行大规模切换的情况下执行它。

谢谢。

【问题讨论】:

    标签: wpf mvvm command


    【解决方案1】:

    您可以使用将命令保存在一个主要位置(例如窗口)的 CommandBindings 并从其范围内的每个视图或控件中调用它。 或者创建一个“CommnadViewModel”,每个特定的 viewModel 都会在其构造函数上获取并绑定到它。 使用 Unity 或其他容器更容易。

    【讨论】:

    • Janushirsha,问题是我的应用程序中有很多这样的命令。并不是所有的都出现在任何地方。所以命令的视图模型的想法是不相关的。问题还在于命令本身正在使用视图模型中的数据,例如选定的行。
    • 您好,实际上 vm 之间的关系通常是 mvvm 模式中的敏感点。无需将所有命令放在一起,而是封装每个概念功能,并通过应用程序机制(信使或类似的东西)或在调用命令 vm 时为其注入功能所需的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2019-12-14
    相关资源
    最近更新 更多