如何以编程方式触发命令

时间:2009-11-15 23:10:58

标签: c# wpf xaml routed-commands

我想从代码中触发ICommand(执行go);我该怎么做?

4 个答案:

答案 0 :(得分:24)

尝试调用Execute方法。

答案 1 :(得分:8)

假设someCommandcommandArgs

if (someCommand.CanExecute(commandArgs))
{
    someCommand.Execute(commandArgs);
}

答案 2 :(得分:4)

如果您使用RoutedUICommand的{​​{3}}和Execute,请确保传入有效的目标,以便找到正确的CommandBinding

此外,如果您的命令的处理程序不直接修改View对象,请考虑使用Kent Boogaart的CanExecute。使用委托命令会将业务逻辑移动到ViewModel,这很好,如果您需要直接从代码执行命令并且您无法访问View(或者您可以从中冒泡的View对象),它们会特别方便到你的CommandBindings)。

答案 3 :(得分:0)

请记住,如果您需要调用另一个内部组件事件,例如单击按钮,请参阅使用“执行”开始的方法(如按下按钮执行)。

另一个答案没问题,只使用执行......