У меня есть класс ViewModel, который реализует интерфейс IDataErrorInfo .
В каждом свойстве установлено Я проверяю переданное значение, и если проверка не проходит, я вызываю метод с именем AddError для добавить ошибку для свойства. Метод AddError добавляет элемент в базовый тип данных, который я использую для управления ошибками (Словарь (Of String, List (Of String))).
В настоящее время все работает хорошо во время ввода данных. Если пользователь вводит недопустимые значения для свойства, FrameworkElement, который используется для ввода данных, выделяется с помощью всплывающей подсказки, для которой установлено сообщение об ошибке.
Теперь вот моя проблема.
Скажем, мой объект содержит недопустимые поля с самого начала ....
Например, если у меня есть класс Person с обязательным полем «Имя», и я создаю новый экземпляр класса Person. Поле имени не будет выделено как «ошибка», так как метод свойства Name set еще не был вызван.
Итак, я включил проверку в свойства, а также .
Кажется, это работает, но ...... это похоже на взлом. И некоторая проверка свойства должна быть сделана моделью (в отличие от ViewModel, с которым я работаю). Модель выдает соответствующее сообщение об ошибке, которое должно быть установлено, но я не могу получить сообщение об ошибке, пока не установлю свойство модели.
Буду очень признателен за любой совет о наилучшем подходе к реализации интерфейса IDataErrorInfo.
Спасибо!
-Frinny