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.sound01VB c# の設定タブで作成できるグローバル パラメータです。

上記のスニピットの最後のリンクで発生しているエラー):型 "bool?" を暗黙的に変換できません 「ブール」に。明示的な変換が存在します (キャストがありませんか?)

しかし、私は bool? を使用していません。設定されている boll のみです。

これに対処する方法を知っている人はいますか?

ありがとう

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;

または、上記のように null 合体演算子を使用します。

于 2012-04-06T14:34:13.840 に答える