2012-01-17 7 views
0

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

+2

Я бы предложил добавить пример сжатого кода, если можно. С наилучшими пожеланиями, –

ответ

0

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

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

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