【发布时间】:2012-03-01 00:02:37
【问题描述】:
我正在尝试学习如何使用 WPF 命令,以及它们如何适应 MVVM 模式。我了解某些控件(例如按钮或菜单)具有 Command 属性,当设置为 ICommand 类的实例时,该属性会将按钮连接到该命令。设置好后,按钮将通过命令的 CanExecuteChanged 事件禁用和启用,单击控件将调用命令的 Execute 方法。
但是,每个 ICommand 的实例应该放在哪里?我在教程中看到了各种不同的选项,但我不确定哪个是正确的。在一些示例中,创建了静态“ApplicationCommands”类,并将每个命令的实例分配给该类的静态属性。在其他示例中,我看到命令设置为 ViewModel 的属性,以及在 View/Window 本身的其他示例中。命令实例的首选位置是什么?
另外,命令如何与视图、视图模型或模型相关联?命令应该注意和/或操纵这些组件中的哪些?执行命令时应该发生什么?它是否应该调用模型的某些方法,然后将更改传回给视图模型/视图?还是命令应该通过 View Model 的方法与模型通信?
【问题讨论】:
标签: .net wpf command routed-commands