C# 如何在页面加载时强制触发NetworkAvailabilityChanged事件

C# 如何在页面加载时强制触发NetworkAvailabilityChanged事件,c#,windows-phone-7,windows-phone-8,C#,Windows Phone 7,Windows Phone 8,我正在使用以下事件收集网络信息,但我需要在页面首次导航到时以及网络发生更改时更新信息并填充我的视图。如何在OnNavigatedTo事件中强制触发以下事件 // Subscribe to the NetworkAvailabilityChanged event DeviceNetworkInformation.NetworkAvailabilityChanged += new EventHandler<NetworkNotificationEventArgs>(ChangeDetec

我正在使用以下事件收集网络信息,但我需要在页面首次导航到时以及网络发生更改时更新信息并填充我的视图。如何在OnNavigatedTo事件中强制触发以下事件

// Subscribe to the NetworkAvailabilityChanged event
DeviceNetworkInformation.NetworkAvailabilityChanged += new EventHandler<NetworkNotificationEventArgs>(ChangeDetected);


...


void ChangeDetected(object sender, NetworkNotificationEventArgs e)
{
    ...
}
//订阅NetworkAvailabilityChanged事件
DeviceNetworkInformation.NetworkAvailabilityChanged+=新事件处理程序(检测到变更);
...
检测到无效更改(对象发送方、NetworkNotificationEventArgs e)
{
...
}

检测到的更改
是一种方法。只需在
OnNavigatedTo
事件中调用它

ChangeDetected(this, new NetworkNotificationEventArgs());

据我所知,你不能强迫那个事件发生(如果我错了,有人纠正我)

从我在您的问题中看到的情况来看,您希望在导航页面时首先检查网络是否可用。这可以通过以下方式完成:

using System.Net.NetworkInformation;

....

protected virtual void OnNavigatedTo(NavigationEventArgs e)
{
   bool isAvailable = NetworkInterface.GetIsNetworkAvailable();

   MessageBox.Show(isAvailable.ToString());
}
在做了一些基本的搜索之后,我能够直接从微软找到这个资源,解释如何使用这个事件,包括这个链接的页面(xaml)和代码(c)


尝试在UI线程中运行消息框代码,而不是在主线程中检查连接更改

       Dispatcher.BeginInvoke(() =>
    {
        MessageBox.Show(isAvailable.ToString());
    });

我收到一个错误,该错误表示“类型”Microsoft.Phone.Net.NetworkInformation.NetworkNotificationEventArgs“未定义构造函数。