0

WinRT アプリでのページングにMyToolkit MtFrameクラスを使用しています。中間ページをロードせずにスタックの N 番目のページに戻る方法があるかどうか疑問に思っています。

私のページスタックは次のようになります。

Page 1 -> Page 2 -> Page 3 -> Page 4 -> Page 5 -> Page 6

"Page 6" から を呼び出すとMtFrame.GoBackToAsync(Page 2)、3 ~ 5 ページがポップされ、そのOnNavigatedToイベントが呼び出されます。

ページ 3 ~ 5 の読み込みをスキップしたりOnNavigatedTo、これらのページのイベントを呼び出さないようにする方法はありますか?

4

1 に答える 1

2

これがGoBackToAsync現在実装されている方法です。ただし、最初に次を使用してページを削除してから、次のようにRemovePageFromStackAt呼び出すことができGoBackAsyncます。

6 ページ目にいて、2 ページに移動したい場合は、次のコードを使用します。

frame.RemovePageFromStackAt(Page5);
frame.RemovePageFromStackAt(Page4);
frame.RemovePageFromStackAt(Page3);
await frame.GoBackAsync(); 

3~5ページを先に消してしまったので、GoBackAsync6ページから2ページにジャンプ…

ただし、覚えておいてください: この方法では、ページが永久に削除され、進むナビゲーションが壊れているため、無効にする必要があります...

唯一のクリーンな解決策は、複数回GoBackToAsync呼び出すだけでなく実装することGoBackAsyncです...そのためには、codeplex プロジェクトで問題を作成してください。

@Vasanth の一般的なコード:

while (currentView.Frame.PreviousPage != desiredPage) 
{ 
    currentView.Frame.RemovePageFromStackAt(currentView.Frame.CurrentIndex - 1); 
}

更新: MyToolkit v2.3.29 では、使用できますGoBackToAsync。問題は修正されました...

于 2015-03-19T08:57:55.593 に答える