我正在尝试从中删除特定BackStack
条目NavigationService.BackStack
。
我发现有一种方法可以删除返回条目,即NavigationService.RemoveBackEntry();
,但它会删除所有返回条目stack
。所以,我的问题是如何删除特定的返回条目?
如何从中删除查询字符串NavigationService.CurrentSource
?我只想在Uri
没有Query String
.
先感谢您 :)
我正在尝试从中删除特定BackStack
条目NavigationService.BackStack
。
我发现有一种方法可以删除返回条目,即NavigationService.RemoveBackEntry();
,但它会删除所有返回条目stack
。所以,我的问题是如何删除特定的返回条目?
如何从中删除查询字符串NavigationService.CurrentSource
?我只想在Uri
没有Query String
.
先感谢您 :)
您无法删除特定的后退堆栈实体,因为您当前的堆栈(当前页面)只能与其相邻的堆栈交互,因此只能删除其先前的堆栈实体。您需要在 NavigateTo() 下一页时删除堆栈。
我可以用这段代码做到这一点。将其插入到 page.Loaded 事件中:
int backstackcounter = this.NavigationService.BackStack.Count();
for (int i = 0; i < backstackcounter; i++)
{
var previousPage = this.NavigationService.BackStack.FirstOrDefault();
if (previousPage != null && !previousPage.Source.ToString().StartsWith("/LoginPage.xaml"))
{
this.NavigationService.RemoveBackEntry();
}
}
“LoginPage.xaml”是我想留在后台的页面。