У меня есть приложение, которое использует шаблон MVVM, и я хотел бы реализовать проверку, когда пользователь заполняет эту информацию.- это хорошая идея, что модель представления реализует IDataErrorInfo для проверки?
Я хотел бы использовать IDataErrorInfo, но я не знаю, хорошая идея, что моя модель представления реализует этот интерфейс или лучше, если я создаю новый класс. Как наилучший способ получить валидацию с помощью IDataErrorInfo и шаблона MVVM?
EDIT: Я вижу, что в некоторых примерах реализация находится в модели (это не то же самое, что модель представления), но в моем случае модель в основном представляет собой объекты POCO, которые я создаю из своей базы данных при создании моя модель edmx с инфраструктурой сущностей, поэтому я бы хотел избежать необходимости изменять эти объекты, потому что, если мне не нужно обновлять мою модель, мне придется снова выполнить эту работу.
Спасибо.
Хороший вопрос. +1 –
Я бы сказал, что это очень хорошая идея для виртуальной машины для реализации 'IDataErrorInfo'. Этот интерфейс в значительной степени «помогает» с передачей информации пользователю (Просмотр) для фоновых ошибок (Ошибки в данных). это именно то, для чего нужна ВМ, и было бы совершенно правильно иметь ее там. [Комментарии в этом ответе] (http://stackoverflow.com/a/341832/1834662), а ниже под ним утверждается, что он есть в Модели. Определив его в другом классе, чем модель, и виртуальная машина не будет «неправильной» либо для абстракции, а просто не стоит этого. – Viv
..cont'd. Если то, что вы проверяете с помощью «IDataErrorInfo», является такой сложной логикой, что вы захотите повторно использовать его, тогда я буквально переместил эти функциональные проверки в службу, а затем попросит VM реализовать интерфейс и VM использует службу для доступа к сложной логике проверки. Таким образом, вы получили свое повторное использование кода и совместное использование, а также оставайтесь чистым и простым с каждой виртуальной машиной, просто реализующей сами IDataErrorInfo. – Viv