Добавить комментарий

Какой наиболее распространенный и гибкий способ проверки валидности модели? Должна ли модель сама проверять себя? Ну и применительно к WPF, как отображать ошибки в данных?

Потратив на данный вопрос несколько дней, пришел к выводу, что наиболее верный способ - это реализация IDataErrorInfo объектами модели. При этом получаем полную поддержку вывода ошибок в интерфейсе пользователя. Почти без какой-либо дополнительной работы. Об этом можно почитать тут и тут.

Однако непонятно, что делать, если объект модели, реализующий IDataErrorInfo, содержит свойство типа IDataErrorInfo. И это главный мой вопрос :)

Так же есть несколько фреймворков для валидации данных и ввода пользователя:

  1. .net Validation Framework. К недостаткам можно отнести то, что модели, построенные на основе его классов, не имеют конструкторов по умолчанию, ди вообще тянут за собой длинный хвост. Достоинства: интересная система реализации правил валидации в виде атрибутов к свойствам объекта модели.
  2. ValidationAspects. Тут просто имеет место магическое AOP, вот и упомянул.

Из орудий более крупного калибра можно упомянуть:

  1. Caliburn. Предоставляет уже готовую поддержку валидации моделей и отображения ошибок валидации. Для молучения всех преимуществ рекомендуется наследоваться от классов фреймворка, определенных в сборке Caliburn.ModelFramework.
  2. Ocean. Не знаком, но хвалят.
Внимание! Вы собираетесь отправить информацию от имени анонимного пользователя.
v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.