Сохраняйте состояние страницы при выходе

Скажем, у меня есть две страницы, A и B.

Пользователь может изменить что-то на странице A, а затем перейти на страницу B. Когда он находится на странице B, он нажимает кнопку «Назад», чтобы перейти на страницу A. Все, что было сделано ранее, теряется.

Существует способ получить точно такое же состояние, используя

this.NavigationCacheMode = 
        Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;

Но есть ли способ узнать, открывается ли страница в первый раз с помощью кнопки «Назад»?


person Jonas Schmid    schedule 02.05.2012    source источник


Ответы (1)


да это так:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
  if (e.NavigationMode == NavigationMode.Back)
  {
    // LoadPreviousSate...
  }
}

Вам также следует взглянуть на ApplicationExecutionState (в событии OnLaunched в App.xaml). Если вы перейдете на страницу B, приложения приостановятся, приложение продолжится, пользователь перейдет на страницу A, NavigationMode будет New!

person Jan K.    schedule 02.05.2012
comment
Спасибо. Есть ли способ сохранить вещи, которые я хотел бы использовать повторно? (Какой-то текст, который не сохранился механизмом или что-то еще) - person Jonas Schmid; 02.05.2012
comment
Вы должны справиться с этим самостоятельно. Если в текстовом поле есть текст, который вы хотите сохранить (и который не сохраняется при кэшировании), запишите его в изолированное хранилище или в настройки приложения. Вы также можете попробовать установить this.NavigationCacheMode = NavigationCacheMode.Required; - person Jan K.; 02.05.2012