我的应用程序左侧有一个Outlook样式的菜单,内容显示在右侧。我正在使用Prism的导航API。当用户在菜单项之间导航时,会显示给定菜单项最后显示的内容,这样用户就可以在两个区域之间来回切换以比较信息。这包括有一个主显示区域,每个"页面"(即用于显示菜单选择内容的UserControl(都有一个单独的区域嵌套在其中。
每个页面至少包含一个特定控件的实例,该控件有一个带有PropertyChangedCallback
处理程序的DependencyProperty
。我注意到,当页面被导航到时,页面上所有绑定了集合的控件都会触发控件的PropertyChangedCallback
处理程序(这正是我想要的(,但没有一个非集合绑定会触发
我可以看到,导航到一个页面会触发主(外部(区域上的NavigatedTo
事件。我不希望触发页面特定(内部(区域上的NavigatedTo事件,所以没关系。但我不明白的是,当外部区域获取事件时,内部区域中的任何控件或绑定都会被通知更改。
每个集合绑定是ObservableCollection
之上的ListCollectionView
,并且每个集合项实现INotifyPropertyChanged
。
我的问题是:
- 每个集合处理的非集合不是什么事件,从而触发相关性属性更改
- 为什么导航到外部区域会影响内部区域中的控件?内部区域必须接收什么事件
- 我如何/应该实现非集合绑定,使它们具有相同的效果
如果没有示例,我只能猜测您的问题与绑定或属性无关。
你的问题很可能在于你的观点是如何得到认同的。在一种情况下,当您切换视图时,您会从容器(MEF?Unity?(中获得视图的旧副本,在另一种情况中,会创建并填充新实例,从而引发所有这些事件。