Перезагрузка MainPage в WP7 для перезапуска приложения - PullRequest
0 голосов
/ 21 июля 2011

Мое приложение имеет только одну страницу - MainPage. Когда пользователь выбирает «new» в меню ApplicationBar, все, что я действительно хочу сделать, это очистить мои исходные данные и перезагрузить страницу.

Могу ли я сделать это с помощью NavigationService? Следующая строка получает исключение Navigation Failed в RootFrame приложения при вызове из самой MainPage:

this.NavigationService.Navigate(new Uri("MainPage.xaml", UriKind.Relative));

Можно ли сделать это так легко, или мне нужно создать вторую страницу для перехода, прежде чем вернуться обратно на главную страницу?

Ответы [ 2 ]

3 голосов
/ 21 июля 2011

Использование навигации для этой цели звучит как ужасный способ сделать это! Если вы создадите вторую страницу в качестве обходного пути к проблеме, с которой вы столкнулись, она останется в стеке назад, что означает, что она будет доступна, когда пользователь нажмет кнопку «Назад».

Я бы порекомендовал принять шаблон MVVM (см. Пример здесь ). Когда нажата новая кнопка, просто создайте новую модель вида и свяжите ее с вашим MainPage, установив его как DataContext, это будет иметь эффект, который вы желаете очистить и сбросить состояние.

0 голосов
/ 26 июля 2011

Оказалось, что в коде была опечатка:

this.NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));

Косая черта перед MainPage.xaml исправила исключение, которое я упомянул.

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

Спасибо ColinE за ссылку и толчок в правильном направлении.

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