Новый экземпляр страницы в навигации

У меня есть несколько страниц в приложении, которые требуют A-Synchronous вызовов в течение примерно 2-3 минут для синхронизации, пользователь может уйти с этой страницы во время синхронизации и может вернуться снова после посещения нескольких страниц, и синхронизация продолжается. все время он находится и на других страницах, когда я перехожу на страницу со страницы синхронизации и нажимаю кнопку «Назад», все работает нормально. Создается экземпляр страницы, и синхронизация выполняется так же, как перезапуск.

Теперь я знаю, что все работает нормально, поскольку при вызове NavigationService.Navigate() создается новый экземпляр страницы, но что мне делать в этом сценарии? Как получить старый экземпляр страницы, если он есть?

Спасибо...


person Nayyar Siddiqi    schedule 11.04.2011    source источник


Ответы (1)


Вы не можете получить «старый» экземпляр страницы, и не гарантируется, что обратная навигация перезагрузит предыдущий экземпляр страницы, это может быть новый экземпляр той же страницы, но восстановленный в том же состоянии (при условии, что вы спас любой).

Если вы пытаетесь обеспечить навигацию назад из панели приложения, то а) вы, вероятно, не должны этого делать, потому что для этого предназначена кнопка «Назад», и б) вы должны убедиться, что используете NavigationService.GoBack() вместо NavigationService.Navigate(), потому что Навигация всегда будет запускать новый экземпляр вашей страницы.

Если страница, на которую вы хотите перейти, не является предыдущей страницей, то, похоже, вы пытаетесь реализовать нелинейную навигацию, для которой есть рецепт на Центр приложений.

Судя по вашему сценарию, вы должны обрабатывать этот длительный процесс отдельно (вдали от представления), а затем отображать его ход или результаты в представлении, когда пользователь переходит на соответствующую страницу.

person Derek Lakin    schedule 11.04.2011