Проверка WPF (IDataErrorInfo) с использованием ICommand

Я использую ICommand в ViewModel, чтобы иметь возможность добавлять / удалять элементы из коллекций и т. д.

У меня также есть валидация, которая принадлежит классовым моделям для валидации текстовых полей и т. Д.

Есть ли способ, которым я могу использовать два (ICommand в ViewModel + Проверка в модели), чтобы отключить кнопку, если текстовое поле не прошло проверку? Я спрашиваю, потому что ICommand подвергает CanExecute событие, так что я думаю, было бы разумно использовать это!

1 ответ

Решение

Вы поняли идею правильно. Реализовать CanExecute метод, который возвращает результат проверки вашей модели, чтобы при сбое кнопка была отключена.

Затем вы должны убедиться, что CanExecute вызывается снова при изменении условий проверки - например, когда изменилось свойство привязки. Для этого вам могут потребоваться более продвинутые реализации ICommand такие как ПризмаDelegateCommand,

Другие вопросы по тегам