棱镜请求导航到新视图
我正在使用带有autofac
WPF Prism 6
,并且在视图之间导航时遇到问题。 我所拥有的是一种观点,我只想保持活着直到我离开它,下次我导航到它时,我想创建一个新版本的视图。
在加载时,我注册了一个具有以下代码的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
,它将创建一个新的视图实例并显示它。 我觉得我错过了简单的东西,只是忽略了它。
_builder.RegisterTypeForNavigation