Ответ 1
Я думаю, что новым предпочтительным способом может быть использование IDataErrorInfo
Подробнее здесь
У меня очень простое приложение WPF, в котором я использую привязку данных для редактирования некоторых пользовательских объектов CLR. Теперь я хочу поместить некоторую проверку ввода, когда пользователь нажимает на сохранение. Однако все книги WPF, которые я прочитал, на самом деле не посвящают этому вопросу. Я вижу, что вы можете создавать пользовательские ValidationRules, но мне интересно, будет ли это излишним для моих нужд.
Итак, мой вопрос заключается в следующем: есть ли хорошее примерное приложение или статья где-нибудь, демонстрирующая наилучшую практику для проверки ввода пользователя в WPF?
Я думаю, что новым предпочтительным способом может быть использование IDataErrorInfo
Подробнее здесь
От MS Документация по шаблонам и практике:
Проверка данных и отчетность об ошибках
Ваша модель или модель просмотра часто будут требуется для проверки данных и сигнализировать любую проверку данных ошибки в представлении, чтобы пользователь могут действовать, чтобы исправить их.
Silverlight и WPF предоставляют поддержку для управления ошибками проверки данных возникающие при изменении индивидуального свойства, связанные с контролем в представлении. Для отдельных свойств которые связаны данными с элементом управления, модель или модель просмотра могут сигнализировать данные ошибка проверки в пределах свойства сеттер, отклонив входящий плохой значение и исключение. Если свойство ValidatesOnExceptions привязка данных истинна, данные механизм привязки в WPF и Silverlight будет обрабатывать исключение и отображение визуальный сигнал пользователю о том, что существует ошибка проверки данных.
Однако, исключая исключения из свойства таким образом должны быть избегать, где это возможно. Альтернатива подход заключается в IDataErrorInfo или INotifyDataErrorInfo интерфейсы на вашей модели или модели просмотра классы. Эти интерфейсы позволяют просмотреть модель или модель для выполнения данных валидация для одного или нескольких объектов значения и вернуть сообщение об ошибке на вид, чтобы пользователь мог уведомление об ошибке.
Далее приводится документация, поясняющая, как реализовать IDataErrorInfo и INotifyDataErrorInfo.
personaly, я использую исключения для проверки валидации. он требует следующих шагов:
трюк здесь, это привязка только к объектам, которые происходят из DependencyObject. простая реализация INotifyPropertyChanged не сработает - в структуре есть ошибка, которая препятствует доступу к сбору ошибок.
Также проверьте эту статью. Предположительно Microsoft выпустила свою Enterprise Library (v4.0) из своих шаблонов и практик, где они охватывают тему проверки, но бог знает, почему они не включая проверку подлинности для WPF, так что сообщение в блоге, на которое я направляю вас, объясняет, что автор сделал для его адаптации. Надеюсь, это поможет!
Вам может быть интересно приложение BookLibrary приложения WPF Application Framework (WAF). Он показывает, как использовать проверку в WPF и как управлять кнопкой "Сохранить", когда существуют ошибки проверки.
Если ваш бизнес-класс напрямую используется вашим пользовательским интерфейсом, предпочтительнее использовать IDataErrorInfo, поскольку он приближает логику к своему владельцу.
Если ваш бизнес-класс является классом заглушки, созданным ссылкой на службу WCF/XmlWeb, вы не можете/не должны использовать IDataErrorInfo или не использовать исключение для использования с ExceptionValidationRule. Вместо этого вы можете: