2012-12-06 51 views
1

我试图做一个简单的应用程序切换Windows Mobile设备上的WiFi无线电设备,并已发现OpenNETCF.WIndowsMo​​bile命名空间提供了一些宝石,使这个任务超级简单:为什么我更改无线电状态时不刷新?

private void button2_Click(object sender, EventArgs e) 
    { 
     var wifiRadio = (from radio in Radios.GetRadios() 
       where radio.RadioType == RadioType.WiFi 
       select radio).FirstOrDefault(); 

     if (wifiRadio != null) 
      switch (wifiRadio.RadioState) 
      { 
       case RadioState.Off: 
        wifiRadio.RadioState = RadioState.On; 
        button2.Text = "Is On"; 
        break; 
       case RadioState.On: 
        wifiRadio.RadioState = RadioState.Off; 
        button2.Text = "Is Off"; 
        break; 
       default: 
        throw new ArgumentOutOfRangeException(); 
      }        
    } 

,完美的作品第一次点击。在随后的所有点击中,RadioState仍会以相同的方式报告(即使收音机已切换)。

重新启动应用程序后,RadioState将再次返回正确的状态。

有没有办法刷新状态,以便正确报告?

回答

2

我发现有一种刷新方法。如果其他人需要知道如何使用它:

 private void button2_Click(object sender, EventArgs e) 
    { 
     var radios = Radios.GetRadios(); 
     radios.Refresh(); 

     var wifiRadio = (from radio in radios 
       where radio.RadioType == RadioType.WiFi 
       select radio).FirstOrDefault(); 

     if (wifiRadio != null) 
      switch (wifiRadio.RadioState) 
      { 
       case RadioState.Off: 
        wifiRadio.RadioState = RadioState.On; 
        button2.Text = "Is On"; 
        break; 
       case RadioState.On: 
        wifiRadio.RadioState = RadioState.Off; 
        button2.Text = "Is Off"; 
        break; 
       default: 
        throw new ArgumentOutOfRangeException(); 
      }        
    } 
} 
相关问题