1

(使用 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?” “布尔”。存在显式转换(您是否缺少演员表?)

但我没有使用任何布尔?,只有已经设置的铃。

有人知道如何处理这个吗?

谢谢

4

1 回答 1

4

单选按钮的 IsChecked 属性是 'bool?'。将您的代码更改为

Properties.Settings.Default.sound01 = msgOne.radioboxSound.IsChecked??false;

多一点解释。

由于 RadioButton.IsChecked 是 Nullable,因此无论 IsThreeState 属性设置为 true 还是 false,您都需要处理 IsChecked 可以为 null 的事实。

你可以使用

Properties.Settings.Default.sound01 = msgOne.radioboxSound.IsChecked == true;

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

于 2012-04-06T14:34:13.840 回答