(使用WPF应用程序)当我想把bool保存到这样的全局变量时,我遇到了一个错误:
Window msgOne = new Window();
if (Properties.Settings.Default.sound01 == true)
{
msgOne.radioboxSound.IsChecked = true;
}
else
{
msgOne.radioboxSound.IsChecked = false;
}
msgOne.ShowDialog();
//waiting for close
Properties.Settings.Default.sound01 = msgOne.radioboxSound.IsChecked;
其中radioboxSound
是复选框,Properties.Settings.Default.sound01
是可以在VB c#的设置选项卡中设置的全局参数
我得到的错误是上面的最后一个链接):无法将类型"bool?"隐式转换为"bool"。存在显式转换(是否缺少强制转换?)
但是我没有使用任何bool?,只有已经设置的护柱。
有人知道怎么处理这个吗?
乙醇
单选按钮的IsChecked属性是"bool?"。将代码更改为
Properties.Settings.Default.sound01 = msgOne.radioboxSound.IsChecked??false;
再解释一下。
由于RadioButton.IsChecked是可为null的,因此无论IsThreeState属性设置为true还是false,您都需要处理IsChecked可为null这一事实。
你可以使用
Properties.Settings.Default.sound01 = msgOne.radioboxSound.IsChecked == true;
或者如上所述使用空合并运算符。