如何返回多个页面?
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()
在我的通用应用程序中,我想使用 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()