2016-03-08 145 views
2

導航頁面後,是否有任何可能性來保留頁面內容?例如,我有窗框和幾個按鈕,每個按鈕都在某個頁面上導航。在WPF頁面之間導航

frame.Navigate(new Page1()); //every button for different page 

現在一個頁面,例如有一些文本塊和按鈕。如果點擊文本塊的按鈕文本改變。當我轉到其他頁面並返回到該頁面時,textblock.Text不會被保存,它會恢復爲默認值?如何保持它?

我知道在WP 8.1,你可以在構造函數中使用這行代碼做到這一點:

this.NavigationCacheMode = NavigationCacheMode.Required; 

但是,我無法找到如何在WPF的相同。

回答

1

它背後的想法很簡單。數據未存儲在頁面中,因爲當您導航到頁面時,正在創建頁面的新實例。

您可以通過維護頁面的一個靜態實例來實現。 即僅在應用程序第一次運行時創建頁面。下次您加載頁面時,狀態將保持不變。

0

你可以使用的Frame.Navigate()重載版本:

public bool Navigate(
    object content, 
    object extraData 
) 

extraData,你可以傳遞一個參數去要導航到,通常是一個字符串的頁面。並且您放置在此字符串中的信息可以被加載的頁面使用,以使用所需的數據進行初始化。

0

您可以在每個頁面內使用KeepAlive = true;屬性,您希望在後退堆棧中進行緩存。