Единственный лучший совет, который я прочитал о навигации по WP7, был: «Если вам не нужно, не используйте его». Я почти прекратил использовать все это вместе и просто использую «MainPage.xaml» для загрузки / выгрузки пользовательских элементов управления, которые делают подобные вещи. Я полностью контролирую кнопку «Назад» по мере необходимости. Это спасло меня от головной боли. Важно понимать, что страницы навигации на самом деле имитируют веб-сайт и его страницы - многие приложения не соответствуют этой парадигме (так как это приложения, а не веб-сайты). Поэтому, если вам не нужно использовать навигацию, не используйте ее.
Таким образом, в вашем случае, если вы просто управляете всем на MainPage.xaml, вы должны использовать несколько операторов If / Then в OnBackKeyPress
, и если вы соответствуете вашим критериям, выполните e.Cancel = true;
и покажите / загрузите / и т.д. , твоя вещь. Если нет, то пусть приложение само по себе перемещается - т.е. завершается.
Для захоронения, просто позвольте OnNavigatedTo
в MainPage.xaml обрабатывать загрузку правильного пользовательского элемента управления, полученного из информации, захороненной из захоронения, полученной из Application_Activated
.