gpt4 book ai didi

c# - Prism IRegionNavigationJournal.GoBack 不工作

转载 作者:行者123 更新时间:2023-11-30 12:48:06 24 4
gpt4 key购买 nike

正如标题所说,IRegionNavigationJournal 的 GoBack 方法有问题。首先是我的场景:

2个 Prism 模块1 个带内容区域的 Prism Shell

我只通过 RegionManager.RequestNavigate("region", "ModuleName") 导航。此外,我在 unitycontainer 中使用 ModuleName 注册 View 和 View 的 ViewModel

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

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

点击第二个模块的navigateto命令后,第二个模块显示在内容区域。

此外,每个模块都会将 GoBack 命令注入(inject) shell 以执行 IRegionNavigationJournal.GoBack 以及 OnNavigateTo 方法中的模块特定内容。

每个 ViewModel 都实现了 INavigationAware(确切地说,这是在基础 View 模型中实现的)。在 OnNavigatedTo 中,我保存了 NavigatioService。引发模块 2 的 GoBack 命令后,执行的最后一个操作是调用模块 2 的 OnNavigateFrom。永远不会调用仪表板的 OnNavigateTo。模块 2 的 View 停留在 contentregion 中,仅此而已。

如果我调试应用程序,IRegionNavigationJournal 的后台显示 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();

希望有人能帮忙。

提前致谢

最佳答案

似乎是 RegisterType<T> 中的字符串方法必须与 View 的类名相同。 RequestNavigate(RegionName, ViewName)适用于不同的字符串,位 GoBack()没有。

关于c# - Prism IRegionNavigationJournal.GoBack 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15098352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com