prism:ClearChildViewsRegionBehavior.ClearChildViews =“True”不清除ChildViews

时间:2012-04-21 15:11:43

标签: wpf prism prism-4

我有以下区域层次结构。

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)该区域的所有视图以及该区域包含的所有嵌套区域。

1 个答案:

答案 0 :(得分:0)

您是否尝试过IRegionMemberLifetime界面?

bool KeepAlive { get{return False;} }