Несмотря на то, что NavigationService.CanGoBack
возвращает True
, NavigationService.GoBack()
выдает мне следующие исключения:
A first chance exception of type 'System.ArgumentException' occurred in System.Windows.dll
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in
Это происходит систематически в двух случаях, а третий работает нормально:
- Сбой, если я позвоню
NavigationService.GoBack()
вOnNavigatedTo()
- Сбои Если я звоню
NavigationService.GoBack()
в результатеWebException
, брошенного в мойHTTPWebRequest
, когда Интернет недоступен [1] - Работает нормально, если Интернет доступен, и я звоню
NavigationService.GoBack()
, когда мойHTTPWebRequest
получает результаты, анализирует их и отображает.
Моя теория заключается в том, что я не могу вызвать GoBack()
слишком быстро после перехода со страницы на другую... Мой вопрос: Как я могу программно вернуться вверх по стеку навигации, когда HTTPWebRequest
не загружается?
Редактировать: я решил сделать это по-другому, но я думаю, что мои проблемы могут быть связаны с навигационной анимацией и набором инструментов C# для Windows Phone (я использую выпуск от февраля 2011 г.)
[1] Подробная информация о моем коде в случае 2:
У меня простой HTTPWebRequest
. Мой обратный вызов делает это, и мое приложение вылетает в режиме полета. Ответственной является строка NavigationService.GoBack()
, хотя NavigationService.CanGoBack
возвращает true
.
try
{
response = request.EndGetResponse(result);
}
catch (WebException)
{
Dispatcher.BeginInvoke(() =>
{
NavigationService.GoBack();
});
}
Я также пытался использовать Deployment.Current.Dispatcher.BeginInvoke()
.
NavigationService.GoBack()
вместоHTTPWebRequest
, то GoBack() в улове у меня те же исключения! Но я даже не добираюсь до своегоOnNavigatedTo
! Если у меня есть Интернет, выполните веб-запрос и вызовите GoBack в основном потоке, как только запрос будет успешным, но это сработает. Я предполагаю, что GoBack не работает, если это происходит слишком рано? я обновлю свой вопрос - person Thomas Joulin   schedule 07.10.2011