将checkbox / radiobutton bool保存到全局变量

时间:2012-04-06 14:29:47

标签: c# wpf global-variables boolean

(使用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 ?,只有已经设定的铃声。

任何人都知道如何处理这个?

感谢名单

1 个答案:

答案 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;

或使用上面的空合并运算符。