Отладка CanExecute CommandBinding - PullRequest
       16

Отладка CanExecute CommandBinding

2 голосов
/ 27 ноября 2009

У меня есть пользовательский элемент управления с Button, привязанным к NavigationCommands.RefreshCommand. Обработчик команды находится в родительском элементе управления. CanExecute обработчика выглядит так:

e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property

По какой-то причине Button останется отключенным, пока я не нажму на окно.

Если я нажимаю Button и заставляю его выполняться (что приводит к временному установлению IsConnecting в значение true), оно затем отключит кнопку правильно, но не активирует кнопку, пока я не вызову другое событие в окно (например, щелчок).

Существуют ли какие-либо инструменты или приемы, которые я могу использовать для отладки обработчика CanExecute команды, связанной с кнопкой?

1 Ответ

4 голосов
/ 27 ноября 2009

CanExecute кнопки вызывается только тогда, когда что-то происходит в графическом интерфейсе. Поскольку IsConnecting изменяется в фоновом режиме, WPF не обновляет элемент управления.

Чтобы заставить WPF обновить вызов CanExecute CommandManager.InvalidateRequerySuggested

...