Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top