棱镜请求导航到新视图
问题描述:
我正在使用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
时,它将创建视图的新实例并显示它。我觉得我缺少一些简单的东西,只是忽略它。
答
_builder.RegisterTypeForNavigation<DxfDisplay.Views.DxfDisplay>();
谢谢,从来没有看过扩展方法的命名空间。我知道这一定很容易。 –