WP7: возможно ли перейти на страницу в backstack вместо создания нового экземпляра этой страницы? - PullRequest
2 голосов
/ 20 октября 2011

У меня есть приложение Windows Phone 7.1, в котором у меня есть три страницы, и на каждой странице у меня есть 3 кнопки: первая, ведущая на страницу №. 1, вторая ведущая на страницу №. 2 и третье место на странице №. 3.

Дело в том, что если я перейду на страницу 1, затем на страницу 2, а затем, если я нажму первую кнопку, чтобы перейти на первую страницу, будет создан новый экземпляр этой страницы. Вместо создания нового экземпляра я бы хотел перейти к существующему экземпляру страницы из заднего стека.

Возможно ли это?

Ответы [ 3 ]

2 голосов
/ 20 октября 2011

Да, вам нужно перемещаться назад назад, инициируя возврат (в основном эквивалентно нажатию кнопки «Назад»):

NavigationService.GoBack();

При этом будет использоваться задний стек, поддерживаемый ОС. Она откроет страницу 2 и восстановит страницу 1. Обратите внимание, что вы не можете выбрать , на какую страницу вернуться, она переместится назад на одну страницу, если есть страница для возврата. Так, например, запуск обратной навигации со страницы 3 приведет вас к странице 2, вы не можете выбрать страницу 1.

В качестве альтернативы, но не рекомендуется, вы можете в 7.1 всплывающих страниц из заднего стека:

NavigationService.RemoveBackEntry();

Затем вы можете вручную перейти на страницу. А если серьезно, постарайтесь не делать этого, так как это нарушает ожидания пользователей, если только вы сами не управляете поддержкой страниц.

1 голос
/ 24 октября 2011

можно сделать NavigationService.Navigate(new Uri.. В сочетании с нелинейной навигационной службой.это сделает back.back.back для вас, если вы уже были на этой странице.http://create.msdn.com/en-us/education/catalog/article/nln-serv-wp7

1 голос
/ 20 октября 2011

Для управления вашими данными вам лучше подходит среда, такая как MVVM, вместо того, чтобы полагаться на конкретные экземпляры страницы, но при этом помнить, где находился пользователь на этой странице.

MVVMLight - этохороший выбор - http://mvvmlight.codeplex.com/

Тогда вам просто нужно лучше контролировать навигацию в приложении, решая, как приложение должно работать, а не полагаться на backstack.Back предназначен только для возврата на основе выбора пользователя, а не направления потока вашего приложения (не зависит от него).

Такие функции, как удаление обратных записей в манго, - это обходной путь для решения старых проблем, когдапользователь переходит домой, и вы хотите предотвратить возврат к неверной точке в потоке приложения.

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