在页面之间导航时,我看到有一些功能可以让您返回/前进或返回“主页”。但是,我需要的是能够返回但跳过用户不应再访问的页面。我四处搜索,发现以下内容:http ://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/3819f389-3bfc-4c59-a919-272927fc9229
我尝试使用 GetNavigationStack,但由于无法序列化和我作为 NavigationParameter 传递的对象,它一直失败。我必须使用元组来传递 2 个参数,但这无法序列化,因此我无法让导航堆栈对其进行编辑并手动删除页面。
然后我找到了这个WinRT - 如何从导航历史记录中忽略或删除页面,并认为我可以包含一个布尔值,如果要跳过页面,可以设置该值
在LayoutAwarePage.cs
(所有屏幕继承自的类,由 Visual Studio 生成)中,我添加了protected bool CanGoBackToThisPage { get; set; }
如果您不想访问此页面可以设置,但是这也存在问题,因为有时我不知道您是否想成为能够再次访问页面,直到您在当前页面上完成了某些操作。我不认为你可以做类似的事情previousFrame.CanGoBackToThisPage = true
。此外,Frame
您有权访问的对象(我认为)不能访问实际的页面对象,而是一些摘要对象,我不知道如何将这个布尔值放入该摘要对象中。
有谁知道从导航堆栈中删除上一个/当前页面的简单方法?这似乎是一个非常普遍的问题,所以我很难认为微软没有给我们一些方法来做到这一点。
谢谢