Как сохранить контент на странице после навигации по ней обратно - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть страница с 4 текстовыми полями. Каждый раз, нажимая на TextBox, я использую NavigationService для перехода на новую страницу для удобного ввода через Itembox. Я использую NavigationContext для того, чтобы отправить выбор из Itembox. Но каждый раз, возвращаясь к первой странице, вызывается конструктор страницы, и я вижу пустые текстовые поля вместо заполненных.

Как мне этого избежать?

1 Ответ

2 голосов
/ 25 ноября 2011

Вы активно переходите "назад" на свою главную страницу, используя 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...