1

NavigationWindow (window1) とカスタムのナビゲーション状態があります。

現在、ナビゲーションを行うために使用しているのは次のとおりです。

  • 行きたい場所 (URL) を取得する関数 (navigate(string,bool) ) と、戻るエントリを作成する必要があるかどうかを定義するブール値 (つまり、フォルダーに入った)
  • NavigationService に関連付けられた別の関数 (履歴内で前後に移動できるようにする)

しかし、私の問題は、[戻る] に移動すると、自分の履歴を上書きし始めることです!

これが私のNavigationService_Navigating(...)です(戻る/進むボタンを押すと呼び出されます)

    void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e)
    {
        try // If something goes wrong, just bail.
        {
            // If we're going backwards, we want to remember the current location.
            if (e.NavigationMode == NavigationMode.Back) { e.ContentStateToSave = new GopherNavState(cLocation); }
                // use our internal navigation to move to the location, but dont create a back entry.
                navigate((e.TargetContentState as GopherNavState).tLocation, false);
        }
        catch
        { } // ...
    }

問題は散発的に発生します。後ろに 3/4 エントリを作成し、戻って、現在見ているページで履歴がいっぱいであることを確認します。

私はすべてを試しましたが、まだうまくいきません。

4

1 に答える 1