ок, спасибо, завтра попробую.
Теперь, чтобы избежать проблем, я переместил все в классе RemoveAllCommandClass в код позади MyPage и сделал несколько модификаций.
1.- Я добавил это в MyPage.xaml:
XMLNS: местные = "CLR-пространств имен: GParts"
тогда я сделал:
<Page.CommandBindings>
<CommandBinding Command="{x:Static local:Pages.MyPage._routedCommand}"
Executed="Execute"
CanExecute="CanExecute"/>
</Page.CommandBindings>
<Button Command="{x:Static local:Pages.MyPage._routedCommand}" .../>
И все в порядке и работает. Когда я нажимаю кнопку, он выполняет фоновый рабочий (bw), который вызывается в методе Execute. BW в другой класс. В фоновом рабочем классе у меня есть переменная (isRunning), которая указывает, выполняется ли bw. Перед выполнением события DoWork я установил его в true, а когда bw завершил, в RunWorkerCompleted я установил его в false. Поэтому из CanExecute я проверяю isRunning в классе bw и устанавливаю в true e.canExecute, если isRunning - false, и e.canExecute в false, если isRunning - true Таким образом, WPF автоматически отключает кнопку, когда bw работает, но когда bw завершает работу, кнопка продолжает отключаться и не возвращается к включенной, пока я не нажму ее снова. Почему WPF не обновляет состояние кнопки до включенного, когда bw завершает работу, пока я снова не нажму кнопку?
Спасибо.