Я использовал IDataErrorInfo
в своих приложениях MVVM/WPF. Теперь, когда INotifyDataErrorInfo
доступен в .Net 4.5, лучше заменить IDataErrorInfo
или продолжить старый путь с помощью IDataErrorInfo
?
.Net 4.5: Должен ли я использовать IDataErrorInfo или INotifyDataErrorInfo?
Ответ 1
В INotifyDataErrorInfo
есть ряд улучшений (в частности, он поддерживает несколько динамически изменяющихся сообщений об ошибках для каждого объекта/свойства), которые делают его выше предыдущего. Но самое большое различие заключается в том, что он асинхронный. Теперь вам нужно запускать событие ErrorsChanged
всякий раз, когда изменяется состояние ошибки.
Если вы внедряете приложение в .NET 4.5, которое предназначено для устройств под управлением Windows 8, вам следует настоятельно рассмотреть возможность использования нового интерфейса. Асинхронное программирование является "предполагаемой моделью" для таких приложений, особенно если вы включаете RT-устройства. Это не намного сложнее реализовать INotifyDataErrorInfo
над IDataErrorInfo
, поэтому на самом деле это не имеет недостатка.
Это не значит, что вы должны обновить все существующие приложения; опять же, это зависит от вашей цели. Если вы пытаетесь обновить существующее приложение, чтобы быть RT-совместимым, вы, вероятно, должны поменять новый код обработки ошибок. В противном случае нет необходимости изменять то, что работает.