Я ценю, что это может звучать немного похоже на некоторые другие вопросы, но я не нашел такой, который бы полностью отвечал моему запросу, поэтому, пожалуйста, оставьте меня в покое. В настоящее время я конвертирую одно из моих существующих приложений в шаблон MVVM, чтобы улучшить его структуру, и я немного обеспокоен тем, что будет лучшим способом проверки данных.
В настоящее время приложение использует привязку данных для связи пользовательского интерфейса и кода и использует несколько правил проверки и преобразователей значений, которые можно повторно использовать для сходных значений (по одному для дат и т. Д.).
При чтении MVVM я наткнулся на IDataErrorInfo, который мне кажется привлекательным, поскольку он не позволяет проверять видимость, тем самым немного сокращая повторяющийся код при настройке привязок и т. Д. И допускает более конкретные сообщения об ошибках.
ValidationRules, с другой стороны, блокируют передачу данных привязки, если проверка не удалась, что мне нужно, потому что я хочу, чтобы значения модели изменяли только новое, действительное значение.
Моя главная проблема заключается в том, что если я слишком ограничиваю вещи в модели представления, чтобы это усложняло представление, - это хорошая идея ограничить вещи до комфортного уровня в общем случае, а затем исправить конкретные случаи, которые требуют больше гибкости в представлении?
Итак, мой главный вопрос: лучше ли поставить валидацию и преобразование в свойствах модели представления или придерживаться моих валидационных правил и преобразователей значений (или какого-то компромисса между ними)?
Спасибо,
Джеймс