Модуль перезагрузки WPF PRISM не обновляет представление - PullRequest
0 голосов
/ 26 марта 2010

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

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

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

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

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

1 Ответ

0 голосов
/ 21 августа 2010

Мое (возможно, упрощенное) понимание состоит в том, что представление не уведомляется об изменении 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-including-datagrid-contextmenu.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...