2017-08-03 7 views
0

こんにちは、私はこの階層UWP - フレームのバックスタックと現在のページを保存するにはどうすればいいですか?

のApp(RootFrame)

  • ログインページ
  • メインシェル(InnerFrame)のエンティティ2
  • を持つエンティティ1
  • リストPageと
    • 一覧ページを持っています
  • 詳細ページRエンティティ1(InnerFrame2)
    • サブページ1-1
    • サブページ1-2
  • エンティティ2の詳細ページ(InnerFrame3)
    • サブページ2-1
    • サブページ2 -1

そして、私は正しく戻るボタンを処理したい。内部フレームのページ間の移動はOKですが、たとえば「エンティティ2のリストページ」から「エンティティ2の詳細ページ」に移動して戻ると、MainShell iはInnerFrames BackStackを再作成して忘れてしまいます。エンティティ2のリストページ)

これを処理する上手な方法はありますか? MainShellのnavigatedFromでInnerFramesの履歴と現在のページを保存しますか?

+0

同じページに3つのフレームがあることを意味しましたか?便利な場合は[mcve]を提供してもらえますか?そうでない場合は、少なくともスクリーンショットを提供してください。 –

答えて

0

私は必要なものを見つけました。 Frameオブジェクトには、SetNavigationState(string)メソッドとGetNavigationState()メソッドがあります。とにかくお礼します

0

Prism Frameworkを試すことができます。ライフサイクル管理exampleです。

PrismはOnAppSuspendedOnAppResumedというイベントが呼び出されたときにビューの復元を管理するためにSessionStateServiceを提供しています。

また、Prism NavigationServiceNavigatedToEventArgs e, NavigatedFromEventArgs e, Dictionary<string, object> viewModelStateのパラメータを渡し、このパラメータを使用してページの動作をOnNavigatedToOnNavigatedFromに上書きすることができます。

+0

私はViewModelの状態を保存する方法を知っていますが、おそらくフレームの状態を保存(およびリロード)する必要があり、それを行う方法はわかりません(基本的にFrame.BackStackとFrame.Contentを保存して復元する方法) –

+0

[ (https://stackoverflow.com/questions/35944277/uwp-page-state-manage)が役立ちます – ashchuk

関連する問題