我有一种情况,当用户单击按钮时,我将WPF PRISM模块加载到程序中。该程序查看已加载模块上的ComboBox SelectedItem属性,以选择新模块的datacontext的数据。然后,它将数据从数据库加载到新模块的datacontext中。这将在新模块的视图上设置我的数据绑定控件的属性。
现在当我再次关闭(卸载)此模块,然后从我的Combobox中取出另一个项目并重新加载模块时,模块的上下文将填充正确的数据,但我的模块中的视图未更新。
我在绑定到此模块上的控件的属性上实现了INotifyPropertyChanged,但它们似乎不会自动更新。从第一次加载此模块开始,旧数据似乎保留在控件中。
只有当我在卸载时将加载模块的datacontext设置回NULL,然后重新加载它才会更新模块的视图。
然而,这感觉就像是黑客,而不是它应该是怎样的。当重新加载后上下文中的数据发生变化时,有没有人知道为什么这个模块的视图似乎没有自我更新?
答案 0 :(得分:0)
我的(可能是简单化的)理解是没有通知视图DataContext已更改(您只在DataContext上的属性上有PropertyChanged)。
但你可能也想看看