2017-03-07 81 views
0

我對棱鏡頗爲陌生。我有一個主要內容區域,一次顯示一個視圖。如果我顯示一個列表視圖,然後執行編輯命令導航到當前項目的詳細視圖,我的導航按預期工作。我可以返回到列表視圖,然後轉發到詳細視圖。如果我回到列表視圖並編輯另一個項目,它的視圖將按預期方式顯示,但現在的前一個細節視圖現在從前向堆棧中刪除。實際上查看棱鏡代碼時,執行RecordNavigation方法時將清除前向堆棧。這是設計嗎?我希望將新的詳細視圖作爲當前項目,但保留向前堆棧中的所有視圖?我假設我將不得不重寫RegionNavigationJournal,但很好奇,如果有什麼我失蹤。mvvm棱鏡6導航到新視圖時清除6個正向堆棧

感謝,

回答

1

是的,這是由設計,準確的作品作爲前進/後退導航系統的。看看你最喜歡的互聯網瀏覽器。鑑於我瀏覽這樣的:

PersonLsitView - > PersonAView

然後壓回,我會在PersonListView再次與PersonAView在我前進的堆棧。

現在來自PersonListView我導航到PersonBView。現在按下後退按鈕,現在我回到了PersonListView,除了這個時間前進的是PersonBView。

將PersonAView作爲在從PersonBView返回後從PersonListView向前導航時出現的視圖是沒有意義的。

老實說,你想要的行爲不會對你的用戶有任何意義。

+0

嗨布賴恩:感謝您花時間回答。實際上,我仍然期望在從PersonListView向前點擊時顯示PersonBView,但是一旦PersonBView被重新激活,Forward按鈕仍然允許你到PersonAView。這是我的第一個WPF應用程序,我試圖從我平常的標籤式視覺工作室類型的winform UI中擺脫出來,並在單個主要內容區域中玩耍。希望日記機制在其父(NavigateFrom)視圖之後插入新視圖,但保留所有先前打開的視圖在前向堆棧中是否錯誤? – LeafsDan

+0

是的,這絕對是非正統的。該導航模式會非常混亂,而不是用戶期望的。 –