Как вы проверяете данные в вашей ViewModel в шаблоне MVVM? - PullRequest
1 голос
/ 23 апреля 2009

Вчера я прослушал этот подкаст с кодом скотоводства на MVC, MVP, MVVM . Меня поразила идея отправить весь объект ViewModel в валидатор, который ничего не делает, кроме проверки всех полей в нем и отправки. это обратно.

  • Кто-нибудь реализовал этот тип шаблона проверки?
  • как это выглядело технически?

Я подумываю о расширении этой идеи, имея также «FormPreparer», который получает весь ViewModel после того, как в него введены данные модели, метаданные поля и другие данные пользователя и контекста, затем этот «FormPreparer» подготавливает все поля в форме, которая будет в представлении, например,

  • поля даты представлены элементами управления DatePicker
  • поля электронной почты представлены текстовыми полями с подтверждением электронной почты
  • и, например, поле Customer является раскрывающимся списком клиентов

метаданные определяют следующее для каждого поля:

  • тип (текст, дата, дата / время, продолжительность, электронная почта, URL, клиент)
  • элемент управления (текстовое поле, многострочное текстовое поле, раскрывающийся список, радиокнопки, флажок, кнопка щелчка)
  • метка (например, «Имя»)
  • helptext (например, «это число, которое вы найдете в верхней части формы 4A»)
  • пример ("# 123ABCD")
  • отображение вкладки (например, для форм, состоящих из нескольких областей вкладок)
  • область отображения (например, для форм, которые группируют поля в области)
  • порядок отображения (например, порядок полей в группе)
  • значение (например, "Джим")
  • данные автозаполнения (массив имен, который должен отображаться, когда пользователь начинает печатать)
  • статус поля (только чтение, редактирование, скрытие)

«FormPreparer» объединит всю эту информацию и затем представит данные в представление, которое:

  • показывает все данные формы в соответствующих элементах управления (даты в виде указателей даты, описания в многострочных текстовых полях и т. Д.)
  • автоматически выполняет все проверки
  • будет отображать только те поля, которые разрешено видеть текущему пользователю, и будет позволять ему редактировать только те данные, которые ему разрешено редактировать
  • и т.д.

Кто-нибудь программировал приложение WPF / MVVM по этим направлениям?

1 Ответ

0 голосов
/ 24 января 2010

Нет. Я работаю над проектом WPF / MVVM, но мы не использовали такой общий подход к валидации. Мы создаем собственный метод проверки в каждой модели представления с логикой проверки, определенной для каждой модели представления.

Общая процедура проверки, которая могла бы использоваться для всех моделей представлений, была бы великолепной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...