Подтвердить что ты не робот

.Net 4.5: Должен ли я использовать IDataErrorInfo или INotifyDataErrorInfo?

Я использовал IDataErrorInfo в своих приложениях MVVM/WPF. Теперь, когда INotifyDataErrorInfo доступен в .Net 4.5, лучше заменить IDataErrorInfo или продолжить старый путь с помощью IDataErrorInfo?

4b9b3361

Ответ 1

В INotifyDataErrorInfo есть ряд улучшений (в частности, он поддерживает несколько динамически изменяющихся сообщений об ошибках для каждого объекта/свойства), которые делают его выше предыдущего. Но самое большое различие заключается в том, что он асинхронный. Теперь вам нужно запускать событие ErrorsChanged всякий раз, когда изменяется состояние ошибки.

Если вы внедряете приложение в .NET 4.5, которое предназначено для устройств под управлением Windows 8, вам следует настоятельно рассмотреть возможность использования нового интерфейса. Асинхронное программирование является "предполагаемой моделью" для таких приложений, особенно если вы включаете RT-устройства. Это не намного сложнее реализовать INotifyDataErrorInfo над IDataErrorInfo, поэтому на самом деле это не имеет недостатка.

Это не значит, что вы должны обновить все существующие приложения; опять же, это зависит от вашей цели. Если вы пытаетесь обновить существующее приложение, чтобы быть RT-совместимым, вы, вероятно, должны поменять новый код обработки ошибок. В противном случае нет необходимости изменять то, что работает.