C# Windows Phone-丢失网络连接的事件处理程序

C# Windows Phone-丢失网络连接的事件处理程序,c#,windows-phone-7,windows-phone-8,connectivity,C#,Windows Phone 7,Windows Phone 8,Connectivity,每当用户失去网络连接时,我都想转到应用程序的主页。我发现,DeviceNetworkInformation.NetworkAvailabilityChanged是我正在寻找的,但我不确定应该在方法中添加什么作为代码,以及它是如何工作的。当我在主页面中添加eventhandler时,它对整个应用程序是否有效?我可以用NavigationService方法使用Navigate方法吗?我在想,我会以某种方式检查我是否不在MainPage.xaml上,然后导航到此页面,如果是,则调用其他代码(用于设置某

每当用户失去网络连接时,我都想转到应用程序的主页。我发现,
DeviceNetworkInformation.NetworkAvailabilityChanged
是我正在寻找的,但我不确定应该在方法中添加什么作为代码,以及它是如何工作的。当我在主页面中添加eventhandler时,它对整个应用程序是否有效?我可以用
NavigationService
方法使用
Navigate
方法吗?我在想,我会以某种方式检查我是否不在
MainPage.xaml上,然后导航到此页面,如果是,则调用其他代码(用于设置某些控件的可见性等)。这样做好吗?我可以签入激活页面的代码吗?谢谢

在你的应用程序课程中有一行:

public PhoneApplicationFrame RootFrame { get; private set; }
您可以使用它进行导航:

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

Anton所说的是正确的,因为您可以轻松地从代码中的任何位置引用根框架,这将为您提供与PhoneApplicationPage中的NavigationService相同的功能,这样您就不必为了导航而仅限于页面中的代码。尽管我认为他错过了.Navigate方法调用:

RootFrame.Navigate(new Uri("View/MainPage.xaml", UriKind.Relative));
您还希望以以下方式引用根框架:

(Application.Current.RootVisual as PhoneApplicationFrame).Navigate(...)
我有:


但是,您可以使用此类并查看方法或事件NetworkAvailabilityChanged

您可以在App.xaml.cs文件中订阅,但我不能使用NavigationService。在App.xaml.cs中导航。查看一下,我得到了“无效的跨线程访问”。错误,当我使用Dispatche.BeginInvoke时,我的应用程序只是崩溃。使用dispatcher,我得到了以下错误:“现在没有碎片支持”
    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;
        }
    }