2016-08-18 125 views
2

我正在使用WPF Prism 6autofac,並且在視圖之間導航時出現問題。我所擁有的是一種觀點,我只想保持活力,直到我離開它,下一次我瀏覽它時,我想創建一個新視圖。棱鏡請求導航到新視圖

上的負載,我REGIST具有下列代碼IModule

_regionManager.RegisterViewWithRegion(RegionNames.MainRegion, 
             typeof(DxfDisplay.Views.DxfDisplay)); 

這將註冊我的觀點和系統工作在初始加載,我實現了對視圖模型的INavigationAwareIRegionMemberLifetime接口,並有public bool KeepAlive => false;實施IRegionMemberLifetime,這樣我就完成了我的觀點。

當我從這個觀點一切導航離開是好的,但是當我試圖使用導航

_regionManager.RequestNavigate(RegionNames.MainRegion, 
           new Uri("DxfDisplay", UriKind.Relative), parameters); 

的觀點是不是開了,一個視圖模型的構造不叫導航到視圖。爲了使導航正常工作,我需要再次註冊與該地區的視圖。或者,如果我將KeepAlive更改爲true,則可以導航回原始視圖,但如果INavigationAware.IsNavigationTarget返回false,則無法生成新視圖。

我的問題是如何以區域管理器的方式註冊視圖,當我調用_regionManager.RequestNavigate時,它將創建視圖的新實例並顯示它。我覺得我缺少一些簡單的東西,只是忽略它。

回答

2

_builder.RegisterTypeForNavigation<DxfDisplay.Views.DxfDisplay>();

+0

謝謝,從來沒有看過擴展方法的命名空間。我知道這一定很容易。 –