Мой вопрос довольно прост и касается проверки объекта в вашей модели представления с использованием блока 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.
- Проверка сохранения все равно пройдет, поскольку данные модели представления все еще действительны.
Как мне это делать?