Проверка WPF (IDataErrorInfo) с использованием ICommand
Я использую ICommand
в ViewModel, чтобы иметь возможность добавлять / удалять элементы из коллекций и т. д.
У меня также есть валидация, которая принадлежит классовым моделям для валидации текстовых полей и т. Д.
Есть ли способ, которым я могу использовать два (ICommand
в ViewModel + Проверка в модели), чтобы отключить кнопку, если текстовое поле не прошло проверку? Я спрашиваю, потому что ICommand
подвергает CanExecute
событие, так что я думаю, было бы разумно использовать это!
1 ответ
Вы поняли идею правильно. Реализовать CanExecute
метод, который возвращает результат проверки вашей модели, чтобы при сбое кнопка была отключена.
Затем вы должны убедиться, что CanExecute
вызывается снова при изменении условий проверки - например, когда изменилось свойство привязки. Для этого вам могут потребоваться более продвинутые реализации ICommand
такие как ПризмаDelegateCommand
,