如何在页面上导航后在页面上保存内容
问题描述:
我有一个包含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