我有以下区域层次结构。
MainRegion ---- SubRegionA
MainRegion有SubRegionA。我通过导航加载SubRegionA中的视图。视图正确加载。当我重新导航到MainRegion并随后重新导航到SubRegionA时,我仍然获得之前加载的SubRegionA的旧视图。我想要的是当我重新导航到SubRegionA时,SubRegionA中的所有视图都应该从memmory中清除,并且应该加载新视图。但是当我重新导航到SubRegionA时,棱镜仍然保留对这些视图的引用并加载它们。我试图将以下内容放在MainRegion和SubRegionA声明中,但这并没有解决问题。
MainRegion
<ContentControl prism:RegionManager.RegionName="{x:Static g:RegionNames.MainRegion}"
prism:ClearChildViewsRegionBehavior.ClearChildViews="True"/>
SubRegionA
<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(删除)时,我们如何清除(来自memmory)该区域的所有视图以及该区域包含的所有嵌套区域。
答案 0 :(得分:0)
您是否尝试过IRegionMemberLifetime界面?
bool KeepAlive { get{return False;} }