我有以下区域层次结构。
MainRegion ----SubRegionA
MainRegion 有 SubRegionA。我通过导航在 SubRegionA 中加载视图。视图被正确加载。当我重新导航到 MainRegion 并随后导航到 SubRegionA 时,我仍然会看到之前加载的 SubRegionA 的旧视图。我想要的是,当我重新导航到 SubRegionA 时,应从内存中清除 SubRegionA 中的所有视图并加载新视图。但是当我重新导航到 SubRegionA 时,prism 仍然持有对这些视图的引用并加载它们。我试图将以下内容放在 MainRegion 和 SubRegionA 声明中,但这并没有解决问题。
主要区域
<ContentControl prism:RegionManager.RegionName="{x:Static g:RegionNames.MainRegion}"
prism:ClearChildViewsRegionBehavior.ClearChildViews="True"/>
子区域A
<TabControl prism:RegionManager.RegionName="{x:Static g:RegionNames.SubRegionA}"
prism:ClearChildViewsRegionBehavior.ClearChildViews="True"
Style="{StaticResource TabStyle}" ItemContainerStyle="{StaticResource TabItemContainerStyle}"
VerticalAlignment="Top" Grid.Row="0" />
简而言之,当一个区域是 NavigatedFrom(removed) 时,我们如何清除(从内存中)来自该区域的所有视图,以及该区域包含的所有嵌套区域。