Модуль перезагрузки WPF PRISM не обновляет вид

У меня есть ситуация, когда я загружаю модуль WPF PRISM в программу, когда пользователь нажимает кнопку. Программа просматривает свойство ComboBox SelectedItem в уже загруженном модуле, чтобы выбрать данные для контекста данных нового модуля. Затем он загружает данные из базы данных в контекст данных нового модуля. Это устанавливает свойства моих элементов управления с привязкой к данным в представлении нового модуля.

Теперь, когда я снова закрываю (выгружаю) этот модуль, затем беру другой элемент из моего Combobox и перезагружаю модуль, контекст модуля заполняется правильными данными, но мое представление в этом модуле не обновляется.

Я реализовал INotifyPropertyChanged для свойств, привязанных к элементам управления в этом модуле, однако они, похоже, не обновляются автоматически. Старые данные с первой загрузки этого модуля, по-видимому, остаются в элементах управления.

Только когда я устанавливаю свой контекст данных загруженного модуля обратно в NULL при выгрузке, а затем перезагружаю его, он обновляет представление модуля.

Однако это похоже на взлом, а не на то, как это должно быть. Кто-нибудь знает, почему представление этого модуля не обновляется, когда данные в контексте изменяются после перезагрузки?


person Tony The Lion    schedule 26.03.2010    source источник


Ответы (1)


Мое (вероятно, упрощенное) понимание состоит в том, что представление не уведомляется об изменении DataContext (у вас есть PropertyChanged только для свойств, а не для DataContext).

Но вы также можете посмотреть на

http://blogs.msdn.com/b/delay/archive/2010/05/11/we-ve-secretly-changed-this-control-s-datacontext-let-s-see-if-it-notices-workaround-for-a-silverlight-data-binding-bug-affecting-various-scenarios-включая-datagrid-contextmenu.aspx

person NVM    schedule 21.08.2010