2013-08-02 1 views
0

Я хочу, чтобы каждый раз, когда пользователь потерял свое сетевое соединение, перейдите на главную страницу приложения. Я обнаружил, что DeviceNetworkInformation.NetworkAvailabilityChanged - это то, что я ищу, но я не уверен, что именно следует добавить в качестве кода в методе и как он точно работает. Когда я добавляю обработчик событий на главной странице, чем работает для всего приложения? И могу ли я использовать этот метод NavigationService с методом Navigate? Я думаю, что я каким-то образом проверяю, не ли я на MainPage.xaml, тогда я бы перешел на эту страницу, и если да, то я вызываю другой код (для настройки видимости на некоторых элементах управления и т. Д.). Это хороший способ сделать это? Могу ли я проверить код, который является активной страницей? БлагодаряWindows Phone - обработчик событий для потерянного сетевого подключения

+0

вы можете подписаться на Ap Файл p.xaml.cs –

+0

Но я не могу использовать NavigationService.Navigate в App.xaml.cs. –

+0

Взгляните на это http://stackoverflow.com/questions/3730245/silverlight-how-to-navigate-from-a-user-control-to-a-normal-page/4946688#4946688 – Waleed

ответ

1

В вашем классе App есть строка:

public PhoneApplicationFrame RootFrame { get; private set; } 

Вы можете перемещаться с помощью его:

private void GoToMainPage() 
{ 
    RootFrame(new Uri("View/MainPage.xaml", UriKind.Relative)); 
} 
0

Что сказал Антон правильно, как вы можете легко ссылаться на эту RootFrame из любой точки ваш код, который предоставит вам ту же возможность, что и NavigationService, из PhoneApplicationPage, и таким образом вы не ограничены только кодом внутри страницы для навигации. Хотя я думаю, что он пропустил на вызов метода .Navigate:

RootFrame.Navigate(new Uri("View/MainPage.xaml", UriKind.Relative)); 

А также вы хотели бы сослаться на RootFrame таким образом:

(Application.Current.RootVisual as PhoneApplicationFrame).Navigate(...) 
+0

У меня есть Msgstr "Недопустимый сквозной доступ". ошибка, и когда я использую Dispatche.BeginInvoke, мое приложение просто падает. –

+0

С диспетчером я получил эту ошибку: «Нет поддержки фрагментов прямо сейчас» –

0

я сделать:

private bool InternetIsAvailable() 
    { 
     if (!NetworkInterface.GetIsNetworkAvailable()) 
     { 
      //MessageBox.Show("No tienes conexión de internet."); 

      return false; 
     } 
     else 
     { 
      //MessageBox.Show("Tienes conexión de internet."); 
      return true; 
     } 
    } 

но вы можете использовать этот класс NetworkChange и посмотреть способ или событие NetworkAvailabilityChanged