2012-04-06 6 views
1

(с помощью приложения WPF) я получаю сообщение об ошибке, когда я хочу, чтобы сохранить логическое значение глобальной переменной, как это:Saving флажок/радиокнопку 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#

ошибка, что я получаю за последнее звено выше snipit): «BOOL» не может неявно преобразовать тип на "bool". Явное преобразование существует (вы пропускаете литье?)

Но я не использовал какой-либо bool ?, только установленные колокола.

Кто-нибудь знает, как бороться с этим?

Thanx

+0

Вы используете Nullable (aka bool?), Потому что IsChecked - это один. – scottheckel

ответ

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; 

или использовать нулевой оператор коалесцирующий, как описано выше.

+0

Это действительно исправление, но не могли бы вы немного объяснить мое понимание? the false -> Значение, если оно не получится каким-то образом, оно установит false? или что он делает? – Dante1986

+0

Tha's right. Это нулевой коалесцирующий оператор и эффективно сокращается: msgOne.radioboxSound.IsChecked.HasValue? msgOne.radioboxSound.IsChecked.Value: false; Который сам стенограмма, если (..) ... еще ... – Phil

Смежные вопросы