В настоящее время их нет от 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 будет один валидатор, который я помещаю в свой модуль инфраструктуры как синглтон и передаю в свою строку, в результате он будет истинным / ложным). Как только все они пройдут, убедитесь, что CanSave возвращает true. Если они потерпят неудачу, CanSave вернет False.
Теперь, если они потерпели неудачу, и вы хотите вызвать дружеское напоминание пользователю о том, что это не удалось, есть несколько методов, которые вы можете использовать здесь. Я обычно помечаю указанный элемент управления при проверке как "сбойный" .. (я написал свое собственное мнение, так что вам решать, какие инструменты вы можете использовать здесь - http://www.codeplex.com/SilverlightValidator неплохой вариант).
Теперь мне обычно нравится делать больше с формами, в которых есть проверка, не только путем выделения указанного элемента управления (красный прямоугольник, значок и т. Д.), Но и более подробного объяснения пользователю того, что от них требуется - таким образом, индивидуальный подход - это решение, которое я Сделала выбор.
В конце концов, вам придется проделать некоторую тяжелую работу, чтобы проверить вашу конкретную форму, но подумайте о способах повторного использования валидаторов там, где они имеют смысл (электронная почта, SSN и т. Д., Которые легко повторно использовать. использовать).
HTH?
Скотт Барнс, менеджер по продукту Rich Platforms - Microsoft.
person
Scott Barnes
schedule
19.05.2009