2010-02-16 127 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命令的按鈕)。