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

本文关键字:保存 导航 | 更新日期: 2023-09-27 18:15:34

我有一个有4个文本框的页面。每次按下TextBox时,我都使用NavigationService导航到新页面,以便通过Itembox进行舒适的输入。我使用NavigationContext来发送Itembox中的选择。但是每次导航回第一页时,页面的构造函数被调用,我看到的是空的文本框,而不是填充的。

我怎样才能避免这种情况?

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

您是否使用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