【问题标题】:How do I programmatically fire a command如何以编程方式触发命令
【发布时间】:2010-12-16 21:21:00
【问题描述】:

我有一个ICommand,我想从代码中触发(使执行开始);我该怎么做?

【问题讨论】:

  • 如果Execute() 方法没有达到您的预期,查看源代码可能会对我们有所帮助。

标签: c# wpf xaml routed-commands


【解决方案1】:

尝试调用Execute 方法。

【讨论】:

    【解决方案2】:

    假设有someCommandcommandArgs

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

    【讨论】:

      【解决方案3】:

      如果您使用的是RoutedUICommandExecuteCanExecute,请务必传入一个有效的目标,以便可以找到正确的CommandBinding

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

      【讨论】:

        【解决方案4】:

        请记住,如果您需要调用内部组件的另一个事件,例如单击按钮,请参阅以 Perform 开头的方法(例如按钮的 PerformClick)。

        其他答案还可以,仅使用 Execute...

        【讨论】:

          猜你喜欢
          • 2011-04-01
          • 1970-01-01
          • 2017-07-15
          • 2014-04-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多