【问题标题】:WPF PRISM reloading module does not update viewWPF PRISM 重新加载模块不更新视图
【发布时间】:2010-03-26 14:06:42
【问题描述】:

当用户单击按钮时,我将 WPF PRISM 模块加载到程序中。程序查看已加载模块上的 ComboBox SelectedItem 属性,为新模块的数据上下文选择数据。然后它将数据从数据库加载到新模块的数据上下文中。这会在新模块的视图上设置我的数据绑定控件的属性。

现在,当我再次关闭(卸载)此模块,然后从我的 Combobox 中取出另一个项目并重新加载模块时,模块的上下文会填充正确的数据,但我在此模块中的视图没有更新。

我已经在绑定到此模块上的控件的属性上实现了 INotifyPropertyChanged,但是它们似乎不会自动更新。首次加载此模块时的旧数据似乎保留在控件中。

仅当我在卸载时将已加载模块的数据上下文设置回 NULL,然后重新加载它会更新模块的视图。

然而,这感觉就像一个 hack,而不是它应该的样子。有谁知道为什么当上下文中的数据在重新加载后发生变化时,这个模块的视图似乎没有自我更新?

【问题讨论】:

    标签: wpf prism data-binding


    【解决方案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-including-datagrid-contextmenu.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-25
      • 1970-01-01
      相关资源
      最近更新 更多