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

时间:2014-03-30 20:49:50

标签: c# windows-phone-7 windows-phone-8

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

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


...


void ChangeDetected(object sender, NetworkNotificationEventArgs e)
{
    ...
}

3 个答案:

答案 0 :(得分:0)

ChangeDetected是一种方法。只需在OnNavigatedTo事件中调用它即可。

ChangeDetected(this, new NetworkNotificationEventArgs());

答案 1 :(得分:0)

据我所知,你无法强迫该事件发生(如果我错了,有人会纠正我。)

从我在您的问题中看到的内容,您首先要检查网页导航时网络是否可用。这可以像下面这样做:

using System.Net.NetworkInformation;

....

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

   MessageBox.Show(isAvailable.ToString());
}

在做了一些基本的搜索之后,我能够直接从Microsoft找到这个资源,解释如何在这个链接上使用包括页面(xaml)和代码(c#)在内的事件。

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh487166(v=vs.105).aspx

答案 2 :(得分:0)

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

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