В методе который осуществляет валидацию есть две части, первая — быстрая ( проверка на регулярном выражении ) вторая — медленная ( вызов процедуры в БД ).
Поле используется в модальном диалоге, соотвественно пока пользователь вводит значение — хотелось бы ему показывать правильно он ввел или нет, но использовать полностью функцию не получится , т.к. будет тормозить при вводе, поэтому хотелось бы использовать UpdateTrigger в двух режимах PropertyModifyed и Explicit.
А имено пока вводит текст — работала только регулярка, как только нажал кнопку ОК в диалоге — пошла полная проверка ( регулярка + хранимка ).
Здравствуйте, Аноним, Вы писали:
А>skipped
IMHO, "валидация", которая "вызов процедуры в БД" — это часть бизнес-логики сервера приложений либо, если его нет, слоя бизнес-логики клиентского приложения. Т.е., валидацией в терминах IDataErrorInfo не является. Поэтому просто перенесите логику, требующую обращения к БД, в команду, которая привязана к кнопке "OK", уберите у свойства CustomValidationAttribute и получите желаемое поведение.
Перенесите в команду — это, конечно, условно. По идее, команда должна дергать метод сервиса, которому будет отдавать объект, а этот сервис уже будет выполнять основную работу.