调用Command的CanExecute方法但不执行Execute方法

时间:2011-10-10 16:21:21

标签: c# wpf routed-commands

我已将命令绑定到Ribbon控件上的按钮。按钮上的CanExecute方法按预期调用,但单击该按钮不会导致调用Execute方法。 CanExecuteCanExecute属性设置为true - 相关按钮已启用且可点击。

之前有其他人见过这种行为吗?如果是这样,我该怎么办呢!

编辑:

CommandBinding commandBinding = new CommandBinding(StaticCommands.ThisCommand, ThisCommandExecutedHandler, ThisCommandCanExecuteHandler);
CommandManager.RegisterClassCommandBinding(this.GetType(), commandBinding);
CommandBindingList.Add(commandBinding);

StaticCommands.ThisCommandRoutedCommand,输入提示为F5

不幸的是我无法发布任何xaml,因为所有内容都包含在另一个团队的库中。我认为现在是正确的。此外,使用与命令关联的键盘手势(按F5)会导致调用execute方法。

没有抛出异常,输出窗口中没有消息,并且snoop显示正确绑定的所有内容。我真的很难过。

2 个答案:

答案 0 :(得分:1)

如果参数在类型上没有正确匹配,通常会发生这种情况......您是绑定一种类型的CommandParameter并在Command.Execute()调用中接受不同的类型参数吗?

答案 1 :(得分:0)

通过将RoutedCommands包裹在RelayCommand中来解决此问题。我不知道为什么会这样,但假设其他团队的装配有问题。