导航窗口历史记录没有正确保存状态
问题描述:
我有一个NavigationWindow(window1)和一个自定义导航状态。导航窗口历史记录没有正确保存状态
我目前正在使用做我的导航是这样的:
- 功能(导航(字符串,布尔)),这会占用我想去的位置(URL),再加上布尔定义,如果我应该做一个返回条目(即我已经去到一个文件夹)
- 一个单独的函数,它关系到我的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
{ } // ...
}
sporatically出现问题。我会在背后创建3/4条目,回去看看我的历史充满了我目前正在查看的页面。
我已经试过了一切,但我仍然无法正确理解它。
答
我发现我的心痛之源:历史菜单。事实证明,我使用导航窗口中的chrome导致了我的头痛。
为了解决这个问题,我只关闭了窗口内的导航控件,并自己创建了一个(具有BrowseBack和BrowseForward命令的按钮)。