2013-04-15 65 views
1

我認爲如果你用IoC容器註冊一個視圖爲「Singleton」,那麼每次你瀏覽它時都會重複使用同一個實例,而將視圖註冊爲「Transient」會創建一個新的實例,每次你導航到它。除非我做錯了什麼,否則我發現IoC「生活方式」沒有任何區別,並且它的屬性決定了視圖是否每次都被重新使用或重新創建。它是否正確? (我正在使用Castle Windsor IoC)。關於WPF中Prism導航的一些問題

當Prism文檔談到視圖被「停用」時,這是否僅僅是從視圖導航時隱藏視圖的過程?如果KeepAlive=False,這個觀點是否得到處理?

嵌套視圖/區域呢?如果一個視圖在其中包含一個帶有另一個視圖的區域,並且我遠離父視圖導航,那麼這兩個視圖是否被取消激活/銷燬(取決於KeepAlive的值)?那麼ClearChildViewsRegionBehavior - 這在什麼地方適合?

回答

0

我不知道這是否適用於您的情況,但我實現了接口INavigationAware。
如果應該爲每個導航重用視圖,我總是從IsNavigationTarget方法返回true。

public bool IsNavigationTarget(NavigationContext navigationContext) 
{ 
    return true; 
} 
+1

我只是在一篇關於你的問題有一些信息的Prism文章中混跡。看看步驟3b:http://www.codeproject.com/Articles/165376/A-Prism-4-Application-Checklist –