Кэширование кадров и страниц WinRT/UWP :Как создать новый экземпляр страницы в Navigate ()и сохранить экземпляр страницы в GoBack()

Я пытаюсь создать приложение UWP (Universal Windows App )с помощью C #. Моя проблема заключается в элементе Frame:. Если я использую его без NavigationCacheMode = Required, каждый раз, когда пользователь возвращается, страница не сохраняется в памяти и будет воссоздаваться. Если я установил NavigationCacheModeна Requiredили Enabled, возврат работает правильно (нет нового объекта страницы)но если я перехожу на другую страницу из того же типа, объект предыдущей страницы перерабатывается и используется повторно (нет нового экземпляра страницы ).

Желаемое поведение:

Есть ли способ иметь следующее поведение с исходным элементом управления Frame(, как в Windows Phone):

  1. Создайте новый экземпляр страницы наNavigate()
  2. Оставьте экземпляр страницы наGoBack()

Единственное известное мне решение — создать собственный Frameэлемент управления, но это приводит к другим проблемам (, например. :отсутствует SetNavigationState()метод и т.д...)

Пример сценария:

Пример простого приложения с тремя страницами:TvShowListPage, TvShowDetailsPage, SeasonDetailsPage.

  1. TvShowListPageявляется входной страницей. После нажатия на TvShowперейдите к TvShowDetailsPage.
  2. Теперь в TvShowDetailsPageвыберите сезон в списке и перейдите к TvShowDetailsPage.
  3. При переходе назад страницы должны оставаться в памяти, чтобы избежать перезагрузки страниц.
  4. Но если пользователи возвращаются к TvShowListPageи выбирают другой TvShow, TvShowDetailsPageперерабатывается и, возможно, находится в неправильном состоянии (, например, показывает сводную точку приведения вместо первой, сводную по сезонам )

. Я ищу стандартное поведение Windows Phone 7 :Навигация создает новую страницу в стеке страниц,при возврате верхняя страница удаляется из стека и отображается предыдущая страница из стека (, хранящегося в памяти ).

Решение:

Поскольку решения этой проблемы не было, мне пришлось заново реализовать все классы, относящиеся к пейджингу :Page, Frame, SuspensionManager и т. д.

Библиотеку MyToolkit , которая предоставляет все эти классы, можно скачать здесь :https://github.com/MyToolkit/MyToolkit/wiki/Paging-Overview

. Ссылки:

-. 121 ---659778-

Интеграция платежного шлюза в OpencartЯ хочу интегрировать CitrusPay (индийский платежный шлюз )в свое приложение opencart. Я получил комплект интеграции PHP, но не знаю, с чего начать в opencart. Пожалуйста, дайте мне знать, как добавить...

Я хочу интегрировать CitrusPay (Индийский платежный шлюз )в свое приложение opencart. Я получил комплект интеграции PHP, но не знаю, с чего начать в opencart. Пожалуйста, дайте мне знать, как добавить Citruspay в качестве способа оплаты.

5
задан user1534520 18 July 2012 в 11:00
поделиться