У меня есть NavigationWindow (window1) и пользовательское навигационное состояние.
То, что я сейчас использую для навигации, выглядит так:
- функция (навигация (строка,bool)), который берет местоположение (URL), на который я хочу перейти, плюс логическое значение, определяющее, должен ли я сделать запись Back (т.е. я вошел в папку)
- Отдельная функция, котораясвязывается с моим NavigationService (позволяя мне переходить назад / вперед в пределах моей истории)
Хотя моя проблема заключается в том, что когда я возвращаюсь назад, я начинаю переопределять свою историю!(...) (который вызывается, когда я нажимаю кнопку «назад / вперед»)
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 записи в моей спине, возвращаюсь и вижу, что моя история полна страницы, которую я сейчас просматриваю .
Я перепробовал все, ноЯ все еще не могу понять это правильно.