如何返回多个页面?

How to go back multiple Pages?

在我的通用应用程序中,我想使用 Frame 来浏览我的应用程序。根据设计,我也有一个面包屑。现在我真的不知道当用户想要返回多个页面时如何处理。

我的面包屑项是使用 XAML ListView 显示的简单字符串。我找到了用户点击的面包屑的索引,我尝试返回很多次。

我尝试使用 for 循环:

private void Breadcrumb_Item_Tapped(object sender, TappedRoutedEventArgs e)
{
    var breadcrumb = ((sender as Grid).DataContext as string);

    for(int i = 1; i < Breadcrumbs.Count - Breadcrumbs.indexOf(breadcrumb); i++)
    {
        frame.GoBack();
    }
}

但是 frame.GoBack() 并不总是有效,我猜是因为在之前的 GoBack() 调用之后它运行得太快了。我不想使用睡眠方法,因为它应该是即时的。

如何返回多个页面?

我建议使用 frame.BackStack.RemoveAt(frame.BackStackDepth-1)

这样您就可以在不实际导航的情况下从堆栈中删除条目。 使用循环来决定何时应该停止删除,然后执行最终的 frame.GoBack()