2010-03-26 5 views
0

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

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

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

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

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

ответ

0

Мое (возможно, упрощенное) понимание заключается в том, что представление не изменено в 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

Смежные вопросы