Application.LoadComponent () выходит из приложения - WP7 - PullRequest
0 голосов
/ 26 марта 2012

Я работаю над созданием видео-приложения и, работая над Интеграцией с музыкой + видео, я столкнулся с очень странной проблемой. вот что я делаю

прикосновение к элементу истории музыки запускает файл MainPage.xaml, в функции OnNavigate () я проверяю, был ли запрошен элемент истории, и если true, тогда я использую NavigateService.Navigate (videoPage.xaml). Но это выходящее приложение, никакие события приложения не возникают, просто выходит из приложения без какого-либо события приложения.

Насколько я понимаю, нет способа отладить этот сценарий, поэтому я как-то смоделировал его и заметил, что NavigateService.Navigate работает нормально, но именно вызов Application.LoadComponent () является причиной всего этого.

Странные вещи

  • VideoPage.xaml прекрасно открывается при других событиях, кроме этого
  • Он работал раньше и сейчас просто не работает.
  • Я не нашел способа проверить, почему он завершается без какого-либо события.
  • Он работает на симуляторе, но не на устройстве.

Я пробовал чистое решение. (

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

Обновление:

Я нашел решение, это похоже на обходной путь, но оно все равно работает. MainPage.xaml содержит элемент управления pivot и в случае события pivot_selectionChanged создает httpwebrequest, а также показывает progressbaar для systemTray. (это событие возникает при первой загрузке страницы)

В событии OnNavigatedTo я проверял, нужно ли мне переходить на другую страницу или нет, и если да, то я делал вызов навигационной системы с последующим оператором return.

вчера мне стало известно, что return не останавливает события загрузки элементов управления, и страница все равно вызывает pivot_selectionChanged. поэтому вместо прикрепления события pivot_selectionChange в xaml я переместил его в файл кода. это сработало.

Но все еще остается вопрос, почему приложение закрывается, не вызывая никаких исключений, даже события Application_Close. И что было настоящей проблемой, так это ожидание HttpWebRequest или Progressbar в systemTray, которое вызывает такие проблемы.

1 Ответ

0 голосов
/ 27 марта 2012

Приложение, вероятно, вызывает исключение, просто вы его не видите, потому что у вас больше нет подключенного отладчика. Предложите добавить окно сообщения в обработчик события необработанного исключения в вашем App.xaml.cs

 private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs 
 {
     MessageBox.Show(e.ExceptionObject.ToString(), "Unhandled Exception ", MessageBoxButton.OK);
 }
...