Не стоит думать о внедрении INotifyCollectionChanged
в качестве обходного пути - это действительно хорошая практика в WPF.
(Обратите внимание, что вместо этого можно заполнить System.ComponentModel.BindingList . Элементы управления WPF, связанные с этим списком, будут автоматически обновляться при изменении списка.)
Так почему явная привязка данных является стандартной практикой в ASP.NET, тогда как шаблон наблюдателя *1009* используется в WPF? Это происходит из-за различной природы двух сред.
ASP.NET - это создание и наполнение веб-страницы. Веб-страница не обновляется постепенно; когда пользователь выполняет обратную передачу, вся новая веб-страница воссоздается. Из-за этого эффективно использовать пакетный подход: собрать все данные и затем сказать «ОК, данные готовы, заполнить элементы управления сейчас».
В приложении с расширенными возможностями элементы управления пользовательского интерфейса создаются один раз, но базовые данные изменяются в течение срока службы элементов управления. Если вы использовали явное связывание данных, при каждом изменении данных вы будете определять, какие элементы управления должны обновляться, а затем вызывать «DataBind» для каждого из них. Это головная боль обслуживания. Лучше, чтобы единственными компонентами, которые знают о привязке, были сами элементы управления. Данные могут просто объявить «Я изменился», и элементы управления могут обновлять себя по своему усмотрению.