В настоящее время от Microsoft их нет, но я передам это в команду PRISM завтра, чтобы посмотреть, сможем ли мы получить базовый пример проверки формы в следующей версии PRISM.
При этом вы можете установить валидатор для каждой формы, который по существу проверяет каждое поле (семантическая и / или синтаксическая проверка) и, если все пройдет, вернет состояние истина / ложь.
Обычно я делаю это, прикрепляя метод CanSave к своим командам, например:
SaveOrderCommand = new DelegateCommand<object>(this.Save, this.CanSave);
private bool CanSave(object arg)
{
return this.errors.Count == 0 && this.Quantity > 0;
}
Затем в this.CanSave я затем помещаю либо базовую проверку в эту кодовую базу, либо я вызываю кучу других валидаторов в зависимости от контекста - некоторые будут общими для всех модулей (т.е. IsEmailValid был бы один Валидатор, который я поместил бы в мой Инфраструктурный Модуль как синглтон и передал бы в мою строку, это было бы тогда true / false в результате). Как только они все пройдут, убедитесь, что CanSave возвращает true. Если они потерпят неудачу, CanSave вернет False.
Теперь, если они терпят неудачу, и вы хотите вызвать дружественное напоминание пользователю о том, что это не удалось, есть ряд методов, которые вы можете использовать здесь. Как правило, я отмечал указанный элемент управления при проверке как «неуспешный» .. (я написал для вас свое собственное мнение, так что вам решать, какие наборы инструментов вы могли бы использовать здесь - http://www.codeplex.com/SilverlightValidator неплохой).
Теперь я обычно хотел бы больше работать с формами, на которых есть проверка, не только выделяя упомянутый элемент управления (красное поле, значок и т. Д.), Но и более подробно объясняя пользователю, что от них требуется - таким образом, индивидуальный подход решение, которое я выбрал.
В конце дня вам придется проделать некоторую тяжелую работу, чтобы проверить вашу конкретную форму - но найдите способы повторно использовать валидаторы там, где они имеют смысл (электронная почта, SSN и т. Д. Просты). для повторного использования).
НТН
Скотт Барнс - менеджер по продуктам Rich Platforms - Microsoft.