棱镜IRegionNavigationJournal.GoBack不工作
本文关键字:工作 GoBack IRegionNavigationJournal 棱镜 | 更新日期: 2023-09-27 18:01:28
正如标题所说,我对IRegionNavigationJournal
的GoBack方法有一个问题。首先是我的场景:
2 Prism模块1棱镜壳带内容区
我只通过RegionManager.RequestNavigate("region", "ModuleName")
导航。此外,我注册的视图和视图的ViewModel在unitycontainer与ModuleName
一切正常,仪表板请求导航到内容区域,显示并呈现模块2的navigateto命令。
单击第二个模块的navigateto命令后,第二个模块将显示在内容区域。
此外,每个模块都在shell中注入一个GoBack命令,以在OnNavigateTo
方法中执行IRegionNavigationJournal.GoBack
+模块特定的内容。
每个ViewModel实现INavigationAware
(确切地说,这是在一个基本视图模型中实现的)。在OnNavigatedTo中,我保存了navigationservice。在触发模块2的GoBack命令后,执行的最后一个动作是模块2的OnNavigateFrom调用。仪表板的OnNavigateTo永远不会被调用。模块2的视图留在contentregion中,就这样。
如果我调试应用程序,IRegionNavigationJournal
的backstack显示1条目,Uri为"DashBoard"。
一些代码片段:
注册类型:
container.RegisterType<object, DashboardViewModel>(new ContainerControlledLifetimeManager());
container.RegisterType<object, DashboardView>(ModuleResources.ModuleName,
new ContainerControlledLifetimeManager());
请求导航:
regionManager.RequestNavigate(ShellRegionNames.ContentRegion, ModuleResources.ModuleName);
返回:
navigationService.Journal.GoBack();
希望大家都能帮忙。
Thanks in advance
似乎RegisterType<T>
方法中的字符串必须与视图的类名相同。RequestNavigate(RegionName, ViewName)
可以处理不同的字符串,而GoBack()
不能。