加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Prism IRegionNavigationJournal.GoBack无效

发布时间:2020-12-15 21:47:58 所属栏目:百科 来源:网络整理
导读:正如标题所说,我对IRegionNavigationJournal的GoBack方法有疑问.首先我的场景: 2个棱镜模块 1 Prism Shell与内容区域 我只通过RegionManager.RequestNavigate(“region”,“ModuleName”)导航.另外,我使用ModuleName在unitycontainer中注册View和视图的View
正如标题所说,我对IRegionNavigationJournal的GoBack方法有疑问.首先我的场景:

2个棱镜模块
1 Prism Shell与内容区域

我只通过RegionManager.RequestNavigate(“region”,“ModuleName”)导航.另外,我使用ModuleName在unitycontainer中注册View和视图的ViewModel

其中一个模块是仪表板模块,其中第二个模块(以及每个其他模块)注册一个navigateto命令.该命令请求导航到模块2.

一切正常,仪表板请求导航到内容区域,显示并呈现模块2的导航到命令.

单击第二个模块的navigateto命令后,第二个模块将显示在内容区域中.

此外,每个模块都会向shell中注入一个GoBack命令,以便在OnNavigateTo方法中执行IRegionNavigationJournal.GoBack以及模块特定的内容.

每个ViewModel都实现了INavigationAware(确切地说,这是在基本视图模型中实现的).在OnNavigated里面我保存了NavigatioService.在提升模块2的GoBack命令后,执行的最后一个操作是调用模块2的OnNavigateFrom.仪表板的OnNavigateTo永远不会被调用.模块2的视图保留在contentregion中,就是这样.

如果我调试应用程序,IRegionNavigationJournal的backstack用Uri“DashBoard”表示1个条目.

一些代码片段:

寄存器类型:

container.RegisterType<object,DashboardViewModel>(new  ContainerControlledLifetimeManager());
container.RegisterType<object,DashboardView>(ModuleResources.ModuleName,new ContainerControlledLifetimeManager());

请求导航:

regionManager.RequestNavigate(ShellRegionNames.ContentRegion,ModuleResources.ModuleName);

回去:

navigationService.Journal.GoBack();

希望有人可以提供帮助.

提前致谢

解决方法

看起来像RegisterType< T>中的字符串.方法必须与视图的类名相同. RequestNavigate(RegionName,ViewName)使用不同的字符串,GoBack()不会.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读