2010-02-16 105 views
1

我有一个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条目,回去看看我的历史充满了我目前正在查看的页面

我已经试过了一切,但我仍然无法正确理解它。

回答

1

我发现我的心痛之源:历史菜单。事实证明,我使用导航窗口中的chrome导致了我的头痛。

为了解决这个问题,我只关闭了窗口内的导航控件,并自己创建了一个(具有BrowseBack和BrowseForward命令的按钮)。