Мой вопрос довольно простой и связан с проверкой объекта в вашей модели представления с использованием блока приложения 5.0 проверки корпоративной библиотеки.
Кажется, что когда пользователь вводит недопустимые данные, в то время как пользовательский интерфейс отображает шаблон ошибки для элемента управления, свойство в модели представления, к которому привязан элемент управления, не обновляется.
Это проблема, так как я хотел вызвать такой код
ValidatorFactory factory = EnterpriseLibraryContainer.Current.GetInstance<ValidatorFactory>();
myValidator = factory.CreateValidator<Customer>();
ValidationResults results = myValidator.Validate(this.CustomerProperty);
if (!results.IsValid)
{
// etc
}
в моей команде кнопки сохранения в модели представления, чтобы проверить правильность данных.
Пример проблемы, с которой я столкнулся.
например Если у меня есть текстовое поле, привязанное к свойству строки в виртуальной машине с помощью валидатора длины строки (минимальная длина 1, максимальная 10), тогда может произойти следующее;
- Введите текст "ABC". Пользовательский интерфейс не показывает ошибку. Свойство модели просмотра обновлено до "ABC".
- Удалить содержимое текстового поля (теперь недействительно). Пользовательский интерфейс теперь показывает ошибку (хорошо). Но свойство модели представления теперь не синхронизировано с пользовательским интерфейсом. Свойство в модели представления по-прежнему установлено на ABC.
- Проверка сохранения по-прежнему будет проходить, поскольку данные модели представления еще действительны.
Как мне это делать?