在导航历史记录中跳过视图

问题描述 投票:1回答:1

有没有办法使用Prism(使用RegionManager.RequestNavigate)导航而无需在导航历史中推送视图。

我希望导航从ViewAViewB和从ViewBViewC而不添加ViewBnavigation history这样当我从GoBack()调用ViewC方法时它让我直接到ViewA跳过ViewB

例如:

I am in ViewA 
Call RequestNavigate(ViewB) -----> Show ViewB
Call RequestNavigateWithoutHistorisize(ViewC) ----> Show ViewC
Call GoBack() -------> Show ViewA
c# wpf mvvm navigation prism
1个回答
0
投票

而不是跳过添加到frameNavigation Stack,考虑从frame中导航后移除navigation stack

例如,导航到ViewAViewB现在从navigation stack删除最后添加的元素(这意味着ViewB被删除)。导航到ViewC

现在如果你看到你的Back堆栈会有ViewAViewC所以当你打电话给GoBack()它会直接带你到ViewA

使用以下代码删除NavigationStack中的最后一个条目

frame.BackStack.RemoveAt(frame.BackStackDepth-1) 
© www.soinside.com 2019 - 2024. All rights reserved.