2013-08-02 156 views
0

我想每次當用戶丟失其網絡連接以轉到應用程序的主頁時。我發現DeviceNetworkInformation.NetworkAvailabilityChanged是我正在尋找的東西,但我不確定究竟應該在方法中添加哪些代碼以及它如何正確工作。當我在主頁面添加eventhandler比它對整個應用程序有效嗎?我可以用NavigationService方法與Navigate方法嗎?我在考慮如果我不在MainPage.xaml那麼我會導航到這個頁面,如果是的話,我會調用其他代碼(用於設置某些控件的可見性等等)。這是做這件事的好方法嗎?我可以檢查活動頁面的代碼嗎?由於Windows Phone - 丟失網絡連接的事件處理程序

+0

您可以在Ap中訂閱p.xaml.cs文件 –

+0

但我不能在App.xaml.cs.中使用NavigationService.Navigate。 –

+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您的代碼將爲您提供與來自PhoneApplicationPage的NavigationService相同的功能,並且這樣您就不會僅限於頁面內的代碼才能導航。雖然我覺得他錯過了.Navigate方法調用:

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

,你也想引用在這種方式RootFrame:

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

我得到「無效的跨線程訪問。」錯誤,當我使用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