У меня есть приложение wpf mvvm. В представлении есть кнопка, и она привязана к команде в модели представления. Функция CanExecute этой команды возвращает значение некоторого BOOL собственностиWpf UI не обновляет
private bool Command1CanExecute()
{
return IsConnected;
}
Когда свойство изменяется, кнопка должна стать инвалидом, но это не произошло, пока я не нажмёте где-то в пользовательском интерфейсе. Решение, которое я думал о (и это работает :)), чтобы запустить
CommandManager.InvalidateRequerySuggested();
каждый второй (грузоотправитель таймер может это сделать).
Есть ли еще более элегантное решение для моей проблемы? Спасибо.
Матвей.
ли вы что INotifyPropertyChanged на классе команд? (Или независимо от того, что эквивалентно для «CanExecute» в Commands ... Я слишком новичок в WPF, чтобы точно знать, что я имею в виду :)) –
Чтение документов, похоже, вы должны реализовать метод " CanExecute "(а не« Command1CanExecute »), а также событие« CanExecuteChanged ». –
@PeterDuniho В коде, который был опубликован op, нет ничего плохого. CanExecute берет предикат, и реализация здесь как ожидалось. – Krishna