【发布时间】:2011-10-10 16:21:20
【问题描述】:
我已将命令绑定到功能区控件上的按钮。按钮上的 CanExecute 方法按预期调用,但单击按钮不会导致调用 Execute 方法。 CanExecute 将 CanExecute 属性设置为 true - 相关按钮已启用并可点击。
以前有没有其他人见过这种行为?如果是这样,我该如何解决它!
编辑:
CommandBinding commandBinding = new CommandBinding(StaticCommands.ThisCommand, ThisCommandExecutedHandler, ThisCommandCanExecuteHandler);
CommandManager.RegisterClassCommandBinding(this.GetType(), commandBinding);
CommandBindingList.Add(commandBinding);
StaticCommands.ThisCommand 是一个RoutedCommand,输入手势为F5。
很遗憾,我无法发布任何 xaml,因为所有内容都包含在另一个团队的库中。我假设现在是正确的。此外,使用与命令关联的键盘手势(按下F5)会导致调用执行方法。
没有抛出异常,输出窗口中没有消息,并且 snoop 显示正确绑定的所有内容。我真的很难过。
【问题讨论】:
-
如果
CanExecute()返回 false,它不能Execute()。CanExecute()被调用了,但是点击按钮返回什么? -
如果是命令绑定,如果CanExecute(object)方法返回false,则无法点击。
-
@BoltClock 可能是对的。但是,如果 CanExecute() 返回 true,我们需要查看一些代码来帮助诊断它。
-
请发布您的 XAML 和定义 XAML 中数据绑定命令的代码。
-
CanExecute返回真。该按钮已启用并可点击。
标签: c# wpf routed-commands