【发布时间】:2010-12-16 21:21:00
【问题描述】:
我有一个ICommand,我想从代码中触发(使执行开始);我该怎么做?
【问题讨论】:
-
如果
Execute()方法没有达到您的预期,查看源代码可能会对我们有所帮助。
标签: c# wpf xaml routed-commands
我有一个ICommand,我想从代码中触发(使执行开始);我该怎么做?
【问题讨论】:
Execute() 方法没有达到您的预期,查看源代码可能会对我们有所帮助。
标签: c# wpf xaml routed-commands
尝试调用Execute 方法。
【讨论】:
假设有someCommand 和commandArgs:
if (someCommand.CanExecute(commandArgs))
{
someCommand.Execute(commandArgs);
}
【讨论】:
如果您使用的是RoutedUICommand 的Execute 和CanExecute,请务必传入一个有效的目标,以便可以找到正确的CommandBinding。
另外,如果您的命令处理程序不直接修改 View 对象,请考虑使用 Kent Boogaart 的 DelegateCommand。使用委托命令会将业务逻辑移动到 ViewModel,这很好,如果您需要直接从代码执行命令并且您无权访问 View(或您可以从中冒泡的 View 对象),它们会特别方便到你的CommandBindings)。
【讨论】:
请记住,如果您需要调用内部组件的另一个事件,例如单击按钮,请参阅以 Perform 开头的方法(例如按钮的 PerformClick)。
其他答案还可以,仅使用 Execute...
【讨论】: