Если вы выбросите исключение в установщик, то IDataErrorInfo
является избыточным, поскольку не может (теоретически) войти в недопустимое состояние. IDataErrorInfo
позволяет принять все вводимые данные, но сообщить пользователю о наличии проблемы. Приятно то, что это позволяет меньше прерывать интерфейс пользователя (поскольку пользователь может продолжать вводить данные, даже если одно поле содержит ошибки и помечены как таковые), и легко сообщать о множественных ошибках сразу - визуально, а не по сообщениям и т. д.
Однако, если вы идете по этому пути, вы должны убедиться, что объект в порядке, прежде чем сохранять его в базе данных и т. Д.
Вы можете сделать это, проверив .Error
в своей бизнес-логике (и убедитесь, что она null
/ пуста), предполагая, что вы пишете .Error
, чтобы сообщить обо всех ошибках. Или аналогичный Validate()
метод.