2012-12-06 50 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(); 
      }        
    } 
} 
相關問題