Почему состояние беспроводной радиосвязи не обновляется, когда я его меняю?
Я пытаюсь создать простое приложение для переключения радио WiFi на устройстве Windows Mobile и обнаружил, что пространство имен OpenNETCF.WIndowsMobile предоставляет несколько гемов, чтобы сделать эту задачу очень простой:
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 снова вернется в правильное состояние.
Есть ли способ обновить состояние, чтобы оно сообщало правильно?
1 ответ
Решение
Я обнаружил, что есть метод обновления. Если кому-то еще нужно знать, вот как вы можете его использовать:
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();
}
}
}