Я пытаюсь понять суть моего последнего вопроса и внести некоторую ясность в описание.
Дана форма WPF для отправки новых данных с двумя текстовыми полями и кнопкой «Сохранить». Оба текстовых поля являются обязательными и привязаны к свойствам ViewModel. Кнопка привязана к команде реле «Выполнить» с помощью методов Execute и CanExecute. CanExecute возвращает !HasErrors ViewModel. ViewModel реализует интерфейсы INotifyPropertyChanged и INotifyDataErrorInfo. Средство установки свойств запускает проверку только для этого свойства.
Цели:
- Сначала отключите кнопку «Сохранить».
- Включите кнопку «Сохранить», только если оба текстовых поля успешно проверены без проверки всей ViewModel при каждом изменении свойства.
Для первой цели я использую логическое свойство isValidated, которое изначально имеет значение false и становится истинным, как только происходит первая проверка. Затем это свойство проверяется вместе с HasEros в методе CanExecute. Есть ли более элегантный способ?
Я понятия не имею, как реализовать вторую цель. Есть мысли по этому поводу?
Спасибо
ICommand
вы используете? У вас есть методRaiseCanExecuteChanged()
или аналогичный? Вызывайте это каждый раз, когда меняются соответствующие свойства. - person Gusdor   schedule 11.01.2014