Проверка пользовательского контроля в ItemsControl - PullRequest
0 голосов
/ 17 января 2012

Я работаю над приложением WPF с MVVM, но не использую какие-либо фреймворки MVVM, такие как MVVM light и т. Д. Я создал пользовательские элементы управления, которые содержат как минимум 8–9 элементов управления, и это отображается в ItemControl в главном окне.Главное окно имеет кнопки сохранения и закрытия.Я реализовал Custom DataValidation, и если какой-либо из элементов управления имеет проверку данных, он отключает кнопку Сохранить.Это работает, как и ожидалось, во всех других элементах управления, но не работает для ItemControl.Пользовательский элемент управления имеет проверки данных и отображает ошибки проверки, но я не могу отключить кнопку сохранения.Любая помощь будет по достоинству оценена.Пожалуйста, дайте мне знать, если вам нужны дополнительные данные.

1 Ответ

0 голосов
/ 18 января 2012

Чтобы включить или отключить кнопку, вы должны рассмотреть возможность использования Команды MVVM .

Они позволят вам привязать команду к кнопке (например, Сохранить) с делегатом CanExecute()функция.Этот CanExecute() может проверить, является ли какой-либо пользовательский элемент управления на ItemsControl недействительным (используя свойства достоверности пользовательских элементов управления), а затем вернуть false.

CanExecute() срабатывает практически при каждой возможностирендеринг пользовательского интерфейса и, следовательно, это вид наблюдаемый .

...