C# Prism IRegionNavigationJournal.GoBack不工作
正如标题所说,我对C# Prism IRegionNavigationJournal.GoBack不工作,c#,.net,wpf,navigation,prism,C#,.net,Wpf,Navigation,Prism,正如标题所说,我对IRegionNavigationJournal的GoBack方法有一个问题。首先,我的设想是: 2个棱镜模块 1个带内容区的棱柱壳 我只能通过RegionManager.RequestNavigate(“region”、“ModuleName”)导航。此外,我还使用ModuleName在unitycontainer中注册视图和视图的ViewModel 其中一个模块是仪表板模块,第二个模块(以及每个其他模块)在其中注册navigateto命令。此命令请求导航到模块2 一切正常,
IRegionNavigationJournal
的GoBack方法有一个问题。首先,我的设想是:
2个棱镜模块
1个带内容区的棱柱壳
我只能通过RegionManager.RequestNavigate(“region”、“ModuleName”)
导航。此外,我还使用ModuleName在unitycontainer中注册视图和视图的ViewModel
其中一个模块是仪表板模块,第二个模块(以及每个其他模块)在其中注册navigateto命令。此命令请求导航到模块2
一切正常,仪表板请求导航到内容区域,显示并呈现模块2的navigateto命令
单击第二个模块的navigateto命令后,第二个模块将显示在内容区域中
此外,每个模块向shell中注入一个GoBack命令,以执行IRegionNavigationJournal.GoBack
以及OnNavigateTo
方法中特定于模块的内容
每个ViewModel都实现了INavigationAware的INavigationAware
(确切地说,这是在基本ViewModel中实现的)。在OnNavigated内保存NavigationService。提升模块2的GoBack命令后,执行的最后一个操作是调用模块2的OnNavigateFrom。仪表板的OnNavigateTo从未被调用。模块2的视图保留在contentregion中,仅此而已
如果我调试应用程序,IRegionNavigationJournal
的backbackback显示1个Uri为“DashBoard”的条目
一些代码片段:
寄存器类型:
container.RegisterType<object, DashboardViewModel>(new ContainerControlledLifetimeManager());
container.RegisterType<object, DashboardView>(ModuleResources.ModuleName,
new ContainerControlledLifetimeManager());
返回:
navigationService.Journal.GoBack();
希望任何人都能帮忙
提前感谢似乎
RegisterType
方法中的字符串必须与视图的类名相同。一个RequestNavigate(RegionName,ViewName)
可以处理不同的字符串,而GoBack()
不能
navigationService.Journal.GoBack();