棱镜RequestNavigate到新视图

我正在将WPF Prism 6与autofac一起使用,并且在视图之间导航时遇到问题.我所拥有的是一个视图,我只想一直存活直到离开它,下一次导航到该视图时,我想创建该视图的新版本.

加载时,我注册了一个具有以下代码的IModule

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

这将注册我的视图,并且系统将在初始负载下工作,我在视图模型上实现了INavigationAware和IRegionMemberLifetime接口,并具有公共bool KeepAlive =>假;实现IRegionMemberLifetime,以便在完成后处理我的视图.

当我离开此视图导航时,一切都很好,但是当我尝试使用以下方法导航到视图时

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

该视图未打开,并且未调用视图模型构造函数.为了使导航正常工作,我需要再次向该区域注册视图.或者,如果将KeepAlive更改为true,则可以导航回原始视图,但是如果INavigationAware.IsNavigationTarget返回false,则无法生成新视图.

我的问题是如何以这种方式向区域管理器注册视图,当我调用_regionManager.RequestNavigate时,它将创建视图的新实例并显示它.我觉得我缺少一些简单的东西,只是忽略了它.

解决方法:

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

上一篇:CodeGo.net>如何使DirectoryModuleCatalog工作?


下一篇:CodeGo.net>如何处理UWP中的HardwareButtons.BackPressed?