C# 请导航到新视图
我将C# 请导航到新视图,c#,wpf,prism,C#,Wpf,Prism,我将WPF Prism 6与autofac一起使用,在视图之间导航时遇到问题。我所拥有的是一个视图,我只想在离开它之前一直保持它,下次我导航到它时,我想创建这个视图的新版本 加载时,我注册了一个包含以下代码的IModule _regionManager.RegisterViewWithRegion(RegionNames.MainRegion, typeof(DxfDisplay.Views.DxfDisplay));
WPF Prism 6
与autofac
一起使用,在视图之间导航时遇到问题。我所拥有的是一个视图,我只想在离开它之前一直保持它,下次我导航到它时,我想创建这个视图的新版本
加载时,我注册了一个包含以下代码的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);
未打开视图,也未调用视图模型构造函数。为了使导航正常工作,我需要再次向区域注册view。或者,如果我将KeepAlive更改为true
,我可以导航回原始视图,但如果INavigationAware.IsNavigationTarget
返回false,则无法生成新视图
我的问题是如何向区域管理器注册视图,以便在调用\u regionManager.RequestNavigate
时,它将创建视图的新实例并显示它。我觉得我错过了一些简单的东西,只是忽略了它。\u builder.RegisterTypeForNavigation()代码>谢谢,从未在扩展方法名称空间中查找过。我知道这必须很容易。