首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MtFrame GoBackToAsync弹出或导航回N页而不加载N-1页

MtFrame GoBackToAsync弹出或导航回N页而不加载N-1页
EN

Stack Overflow用户
提问于 2015-03-18 16:51:26
回答 1查看 59关注 0票数 0

在我的MyToolkit应用程序中,我使用MtFrame类进行分页。我想知道是否有一种方法可以在不加载中间页的情况下导航到堆栈中的Nth页面。

让我们说,下面是我的页面堆栈的样子:

代码语言:javascript
复制
Page 1 -> Page 2 -> Page 3 -> Page 4 -> Page 5 -> Page 6

现在从“Page6”开始,如果我调用MtFrame.GoBackToAsync(Page 2),它会弹出第3-5页,并调用它的OnNavigatedTo事件。

有什么方法可以跳过3-5页的加载,或者让它不为这些页面调用OnNavigatedTo事件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-19 08:57:55

这就是当前实现GoBackToAsync的方式。但是,您可以首先使用RemovePageFromStackAt删除页面,然后只调用GoBackAsync

假设您在第6页,并希望转到第2页,请使用以下代码:

代码语言:javascript
复制
frame.RemovePageFromStackAt(Page5);
frame.RemovePageFromStackAt(Page4);
frame.RemovePageFromStackAt(Page3);
await frame.GoBackAsync(); 

因为您提前删除了第3-5页,所以GoBackAsync从第6页跳到了第2页.

但是请记住:这样的话,页面就会被永远删除,前进导航就会中断,因此应该被禁用.

唯一干净的解决方案是实现GoBackToAsync,这样它不仅可以多次调用GoBackAsync .为此,请在codeplex项目上创建一个问题。

@Vasanth的通用代码:

代码语言:javascript
复制
while (currentView.Frame.PreviousPage != desiredPage) 
{ 
    currentView.Frame.RemovePageFromStackAt(currentView.Frame.CurrentIndex - 1); 
}

更新: In MyToolkit v2.3.29您可以使用GoBackToAsync,问题现在已经解决了.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29127993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档