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 エントリを作成し、戻って、現在見ているページで履歴がいっぱいであることを確認します。
私はすべてを試しましたが、まだうまくいきません。