0

SuspensionManagerMetro アプリのオブジェクトを変更しSaveStateて、子ページのみの状態ナビゲーションMainPageを破棄するにはどうすればよいですか?

たとえば、に移動MainPageできる があります。Metro アプリがまたはの場合、状態値をオーバーライドする必要があります。ChildPageClosedSuspendedChildPageMainPage

これで、次にユーザーがアプリを開いたときに、 ではMainPageなく が開くはずChildPageです。また、アプリの前に更新された状態がまたはMainPageであることを示す必要があります。ChildPageClosedSuspended

SuspensionManagerこれを達成するためにオブジェクトを安全に変更する方法についてのアイデアはありますか?

4

2 に答える 2

0

Danielovichからの提案(これは完全ではありません) を使用すると、解決策は 2 つの部分になります。

まず:

  • オブジェクトに状態を保存するのではなく、pageStateオブジェクトを使用して状態を保存しSessionStateます。なんで?これは、全員が同じ情報Pagesを共有できるようにするためです。State

第二に:

  • それNavigationStateが保存されないようにして、それMainPageが常にデフォルトのページになるようにするには、次のようにSaveFrameNavigationStateinを変更する必要があります。SuspensionManager

    private static void SaveFrameNavigationState(Frame frame)
    {
        var frameState = SessionStateForFrame(frame);
        frame.GetNavigationState();
        frameState["Navigation"] = "1,1,0,15,Skycap.MainPage,12,0";
    }
    
于 2013-06-08T11:03:47.550 に答える