2011-11-24 86 views
0

我有一個包含4個文本框的頁面。每次按下文本框時,我都會使用NavigationService導航到新頁面,以便通過Itembox進行舒適的輸入。我使用NavigationContext爲了從Itembox發送選擇。但每次瀏覽到第一頁時,頁面的構造函數都會被調用,而我看到空的TextBoxes而不是填充的。如何在頁面上導航後在頁面上保存內容

我該如何避免這種情況?

回答

2

您是否使用NavigationService.Navigate()主動導航回「主頁」?不要這樣做,只需使用NavigationService.GoBack()或讓用戶使用「後退」按鈕。

您可以通過PhoneApplicationService.Current.State轉移價值。添加到您的頁面,用戶輸入的值到Itembox:

protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    PhoneApplicationService.Current.State["name"] = "value"; 
    base.OnNavigatedFrom(e); 
} 

當用戶返回到主頁這節省了價值。和你的主頁的代碼添加:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 

    if (PhoneApplicationService.Current.State.ContainsKey("name")) 
     textBox1.Text = (string)PhoneApplicationService.Current.State["name"]; 
} 

這試圖獲得的價值,並將其設置爲TextBox

+1

它的工作原理!非常感謝你! – Pamp