簡體   English   中英

在頁面上使用NavigationWindow

[英]Using NavigationWindow with Pages

在一個項目中,有許多Page派生類和一個MainWindowNavigationWindow

代碼中是否真的應該存在Navigate(new PageDerivedClass()) ,還是應該在以前構建分層Page樹?

如果返回並再次執行相同的操作來創建新的PageDerivedClass ,應用程序是否應該以某種方式處理這種情況並使用已經創建的頁面而不是構建一個新頁面?

據我GarbageCollected ,新創建的頁面不是GarbageCollected ,因為您仍然可以瀏覽NavigationWindow的箭頭。

它以某種方式泄漏嗎?

如何正確使用它? MSDN在這里不是很有幫助。

NavigationWindow在導航歷史記錄中不存儲內容對象的實例。 相反,每次使用導航歷史記錄導航到內容對象時,NavigationWindow都會創建內容對象的新實例。 設計此行為的目的是避免在導航大量大量內容時過多的內存消耗。 因此,從一個導航到下一個導航都不會記住內容的狀態。 但是,WPF提供了幾種技術,通過這些技術,您可以在導航歷史記錄中存儲一條內容的狀態。 (來源MSDN

如果您真的想避免每次都創建新頁面,則還可以創建各個頁面(Page1,Page2等)的實例,並將其存儲在Application對象中,然后像這樣切換到它們:

 NavigationSerivce.Navigate(App.Page2);

解決: Stackoverflow答案

暫無
暫無

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

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