在我的MyToolkit应用程序中,我使用MtFrame类进行分页。我想知道是否有一种方法可以在不加载中间页的情况下导航到堆栈中的Nth页面。
让我们说,下面是我的页面堆栈的样子:
Page 1 -> Page 2 -> Page 3 -> Page 4 -> Page 5 -> Page 6现在从“Page6”开始,如果我调用MtFrame.GoBackToAsync(Page 2),它会弹出第3-5页,并调用它的OnNavigatedTo事件。
有什么方法可以跳过3-5页的加载,或者让它不为这些页面调用OnNavigatedTo事件?
发布于 2015-03-19 08:57:55
这就是当前实现GoBackToAsync的方式。但是,您可以首先使用RemovePageFromStackAt删除页面,然后只调用GoBackAsync:
假设您在第6页,并希望转到第2页,请使用以下代码:
frame.RemovePageFromStackAt(Page5);
frame.RemovePageFromStackAt(Page4);
frame.RemovePageFromStackAt(Page3);
await frame.GoBackAsync(); 因为您提前删除了第3-5页,所以GoBackAsync从第6页跳到了第2页.
但是请记住:这样的话,页面就会被永远删除,前进导航就会中断,因此应该被禁用.
唯一干净的解决方案是实现GoBackToAsync,这样它不仅可以多次调用GoBackAsync .为此,请在codeplex项目上创建一个问题。
@Vasanth的通用代码:
while (currentView.Frame.PreviousPage != desiredPage)
{
currentView.Frame.RemovePageFromStackAt(currentView.Frame.CurrentIndex - 1);
}更新: In MyToolkit v2.3.29您可以使用GoBackToAsync,问题现在已经解决了.
https://stackoverflow.com/questions/29127993
复制相似问题