Windows Phone 8.1 RT - сохранение и загрузка состояния страницы

1

У меня 3 страницы: первая - MainPage, вторая - PivotPage, а третья - SimplePage. Я хочу сохранить состояние PivotPage, когда я перехожу к SimplePage и загружаю его, когда вернусь. Я попытался использовать класс NavigationHelper, но он также сохраняет и загружает состояние PivotPage, когда я возвращаюсь из PivotPage в MainPage, а затем снова переключаюсь на PivotPage, что нежелательно. Кто-нибудь может помочь мне справиться с этим?

РЕДАКТИРОВАТЬ:

У меня 4 случая:

  1. страница с центром
  2. страница с осью поворота
  3. страница со сводками со списками
  4. страница со списком

Как сохранить и загрузить позицию выбранного элемента?

Теги:
xaml
windows-store-apps
windows-runtime
windows-phone-8.1

2 ответа

1
Лучший ответ

Вероятно, есть много способов сделать то, что вы хотите, но, возможно, простого флага было бы достаточно (следовательно, загрузка состояния запускается в OnNavigatedTo):

// provide a flag 
private bool ifLoadData = false;

// set the flag before state is loaded
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    ifLoadData = e.NavigationMode == NavigationMode.Back;
    // rest of the code

// then in LoadState just check if you want your data to be loaded
private void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
{
    if (ifLoadData)
    {
       // load data
  • 0
    Дело в том, что я хочу загрузить позицию элемента в просмотре списка в правом центре.
  • 0
    @ user3853371 Можете ли вы лучше описать / отредактировать свой вопрос? Приведенный выше код должен помочь загрузить сохраненные данные через NavigationHelper , вы можете сохранить положение, поворот, в зависимости от того, что вы хотите.
Показать ещё 1 комментарий
4

Возможно, это то, что вам нужно

добавьте это в свой конструктор

    this.NavigationCacheMode = NavigationCacheMode.Required;
  • 0
    Это сохраняет состояние страницы и загружает его каждый раз, когда вы возвращаетесь к нему, а также при повторном переходе, что желательно.
  • 0
    Со смесью ответа Ромаша это полезно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню