0
我有一個包含4個文本框的頁面。每次按下文本框時,我都會使用NavigationService
導航到新頁面,以便通過Itembox進行舒適的輸入。我使用NavigationContext
爲了從Itembox發送選擇。但每次瀏覽到第一頁時,頁面的構造函數都會被調用,而我看到空的TextBoxes而不是填充的。如何在頁面上導航後在頁面上保存內容
我該如何避免這種情況?
我有一個包含4個文本框的頁面。每次按下文本框時,我都會使用NavigationService
導航到新頁面,以便通過Itembox進行舒適的輸入。我使用NavigationContext
爲了從Itembox發送選擇。但每次瀏覽到第一頁時,頁面的構造函數都會被調用,而我看到空的TextBoxes而不是填充的。如何在頁面上導航後在頁面上保存內容
我該如何避免這種情況?
您是否使用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
。
它的工作原理!非常感謝你! – Pamp