Uwp NavigationService.ClearHistory或ClearCache未从缓存中清除上一页

Uwp NavigationService.ClearHistory或ClearCache未从缓存中清除上一页,uwp,windows-10-universal,uwp-xaml,template10,Uwp,Windows 10 Universal,Uwp Xaml,Template10,我想在导航到特定页面时清除整个导航历史记录,包括上一页。因此,我在该特定页面类型的OnNavigated方法中编写以下代码 Shell.HamburgerMenu.NavigationService.ClearCache(); Shell.HamburgerMenu.NavigationService.ClearHistory(); this.Frame.BackStack.Clear(); BootStrapper.Current.NavigationService.ClearCache();

我想在导航到特定页面时清除整个导航历史记录,包括上一页。因此,我在该特定页面类型的OnNavigated方法中编写以下代码

Shell.HamburgerMenu.NavigationService.ClearCache();
Shell.HamburgerMenu.NavigationService.ClearHistory();
this.Frame.BackStack.Clear();
BootStrapper.Current.NavigationService.ClearCache();
BootStrapper.Current.NavigationService.ClearHistory();
上述方法从缓存中清除除先前访问的页面之外的所有导航历史记录

我们需要清除以前访问过的页面以及其他页面


请告诉我们如何解决此问题。

我不知道您为什么打电话来
var currentFrame = this.GetRootFrame();
if (currentFrame != null && currentFrame.CanGoBack)
    currentFrame.BackStack.RemoveAt(currentFrame.BackStackDepth);
你永远不知道这整行代码什么时候会改变,你以后就得回去修改它

从MVVM文件夹继承INavigable或ViewModelBase,它将具有您可以调用的覆盖

//NavigationService comes from ViewModelBase.... Template10.Mvvm namespace
if(NavigationService.CanGoBack)
   NavigationService.ClearHistory();
NavigationService在应用程序启动时初始化

我使用上面的两行代码完全满足您的要求,它按预期工作。在我的例子中,它防止用户从登录屏幕返回到正常屏幕

对于等式的缓存端,关闭每个页面上的缓存。目前,我不相信我们在T10中有一个全球性的,或者如果有的话

上一个答案发布的代码与ClearHistory/ClearCache方法中的代码大致相同

n、 b.ClearCache现在在T10的导航服务上的当前代码分支中已过时