簡體   English   中英

NavigationWindow歷史記錄無法正確保存狀態

[英]NavigationWindow history is not saving states properly

我有一個NavigationWindow(window1)和一個自定義的navigationstate。

我目前正在使用的導航方式如下:

  • 一個函數(navigate(string,bool)),它獲取我想去的位置(URL),以及一個布爾值,該布爾值定義是否應該輸入Back(即我已經進入一個文件夾)
  • 綁定到我的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條目,然后返回以查看我的歷史記錄, 記錄充滿了我當前正在查看的頁面

我已經嘗試了一切,但仍然無法正確完成。

我找到了心痛的根源:歷史記錄菜單。 原來,我在使用NavigationWindow中的chrome的事實令我頭痛。

為了解決這個問題,我只是關閉了窗口中的導航控件,並制作了自己的按鈕(具有命令BrowseBack和BrowseForward的按鈕)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM