2

我有以下区域层次结构。

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) 时,我们如何清除(从内存中)来自该区域的所有视图,以及该区域包含的所有嵌套区域。

4

1 回答 1

0

您是否尝试过 IRegionMemberLifetime 接口?

bool KeepAlive { get{return False;} }
于 2015-11-01T08:47:59.267 回答