如何在页面上导航后在页面上保存内容

问题描述:

我有一个包含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

+1

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