Windows Phone删除特定的BackStack条目

时间:2013-09-05 10:11:40

标签: windows-phone-7 windows-phone-8 navigationservice

我正在尝试从BackStack删除特定的NavigationService.BackStack条目。

我发现有一种方法可以删除后退条目,即NavigationService.RemoveBackEntry();,但它会从stack中删除所有后退条目。所以,我的问题是如何删除特定的后退条目?

如何从NavigationService.CurrentSource中删除查询字符串?我想只检索Uri而没有Query String

提前谢谢你:)

2 个答案:

答案 0 :(得分:3)

您无法删除特定的后台堆栈实体,因为您当前的堆栈(当前页面)只能与其相邻堆栈进行交互,因此只能删除其先前的堆栈实体。 您需要在NavigateTo()下一页时删除堆栈。

答案 1 :(得分:-1)

我可以用这段代码做到这一点。 将其插入页面。已加载的事件:

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”是我想要留在后台的页面。