(使用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 ?,只有已经设定的铃声。
任何人都知道如何处理这个?
感谢名单
答案 0 :(得分:4)
单选按钮的IsChecked属性是'bool?'。将您的代码更改为
Properties.Settings.Default.sound01 = msgOne.radioboxSound.IsChecked??false;
更多解释。
由于RadioButton.IsChecked是Nullable,因此无论IsThreeState属性是设置为true还是false,您都需要处理IsChecked可以为空的事实。
您可以使用
Properties.Settings.Default.sound01 = msgOne.radioboxSound.IsChecked == true;
或使用上面的空合并运算符。