棱镜请求导航到新视图

棱镜请求导航到新视图

问题描述:

我正在使用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时,它将创建视图的新实例并显示它。我觉得我缺少一些简单的东西,只是忽略它。

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

+0

谢谢,从来没有看过扩展方法的命名空间。我知道这一定很容易。 –