2012-04-21 35 views
2

我有以下區域層次結構。prism:ClearChildViewsRegionBehavior.ClearChildViews =「True」不清除ChildViews

MainRegion ---- SubRegionA

MainRegion有SubRegionA。我通過導航在SubRegionA中加載視圖。視圖會正確加載。當我重新導航到MainRegion並隨後到SubRegionA時,我仍然可以看到先前加載的SubRegionA的舊視圖。我想要的是,當我重新導航到SubRegionA時,SubRegionA中的所有視圖都應該從內存中清除,並且應該加載新視圖。但是,當我重新導航到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

你試過IRegionMemberLifetime接口嗎?

bool KeepAlive { get{return False;} }