0

我的应用程序左侧有一个 Outlook 样式的菜单,右侧显示内容。我正在使用 Prism 的导航 API。当用户在菜单项之间导航时,会显示给定菜单项最后显示的内容,以便用户可以在两个区域之间来回切换以比较信息。这涉及到一个主显示区域,其中每个“页面”(即用于显示菜单选择内容的用户控件)都有一个单独的区域嵌套在其中。

每个页面至少包含一个特定控件的实例,并且该控件具有一个DependencyPropertywithPropertyChangedCallback处理程序。我注意到的是,当页面被导航到时,页面上所有绑定了集合的控件都会触发控件的PropertyChangedCallback处理程序(这是我想要的),但非集合绑定都不会。

我可以看到导航到页面会触发NavigatedTo主(外部)区域上的事件。我不希望触发页面特定(内部)区域上的 NavigatedTo 事件,这很好。但是我不明白为什么当外部区域收到事件时,内部区域中的任何控件或绑定都会收到更改通知。

每个集合绑定都是一个ListCollectionViewover ObservableCollection,每个集合项都实现INotifyPropertyChanged

我的问题是:

  1. 每个集合处理我的非集合没有处理的什么事件,触发依赖属性更改?
  2. 为什么导航到外部区域会影响内部区域中的控件?内部区域必须接收什么事件?
  3. 我如何/应该如何实现非集合绑定以使它们具有相同的效果?
4

1 回答 1

1

如果没有示例,我只能猜测您的问题与绑定或属性无关。

你的问题很可能是你的观点是如何成立的。在一种情况下,当您切换视图时 - 您从容器(MEF?Unity?)中获取视图的旧副本,而在另一种情况下,创建并填充了新实例,引发了所有这些事件。

于 2012-06-23T13:31:28.173 回答