Метод CanExecute команды вызывается, но не метод Execute. - PullRequest
0 голосов
/ 10 октября 2011

Я привязал команду к кнопке в элементе управления ленты.Метод 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) приводит к вызову метода execute.

В окне вывода нет исключений, нет сообщений, и snoop показывает, что все привязано правильно.Я действительно в замешательстве.

Ответы [ 2 ]

1 голос
/ 10 октября 2011

Это обычно происходит, если параметры не соответствуют типу правильно ... Вы связываете CommandParameter одного типа и принимаете параметр другого типа в вызове Command.Execute ()?

0 голосов
/ 14 октября 2011

Исправлено, оборачивая RoutedCommands в RelayCommand.Я понятия не имею, почему это сработало, но при условии, что есть проблема в сборке другой команды.

...