我正在使用WPF Prism 6
和autofac
,並且在視圖之間導航時出現問題。我所擁有的是一種觀點,我只想保持活力,直到我離開它,下一次我瀏覽它時,我想創建一個新視圖。棱鏡請求導航到新視圖
上的負載,我REGIST具有下列代碼IModule
_regionManager.RegisterViewWithRegion(RegionNames.MainRegion,
typeof(DxfDisplay.Views.DxfDisplay));
這將註冊我的觀點和系統工作在初始加載,我實現了對視圖模型的INavigationAware
和IRegionMemberLifetime
接口,並有public bool KeepAlive => false;
實施IRegionMemberLifetime
,這樣我就完成了我的觀點。
當我從這個觀點一切導航離開是好的,但是當我試圖使用導航
_regionManager.RequestNavigate(RegionNames.MainRegion,
new Uri("DxfDisplay", UriKind.Relative), parameters);
的觀點是不是開了,一個視圖模型的構造不叫導航到視圖。爲了使導航正常工作,我需要再次註冊與該地區的視圖。或者,如果我將KeepAlive更改爲true
,則可以導航回原始視圖,但如果INavigationAware.IsNavigationTarget
返回false,則無法生成新視圖。
我的問題是如何以區域管理器的方式註冊視圖,當我調用_regionManager.RequestNavigate
時,它將創建視圖的新實例並顯示它。我覺得我缺少一些簡單的東西,只是忽略它。
謝謝,從來沒有看過擴展方法的命名空間。我知道這一定很容易。 –