C# WPF中如何获取Checkbox选中状态并为变量赋值?
问题:WPF中判断Checkbox选中状态时出现编译错误
我是C#和Visual Studio的新手,之前用过一点Visual Basic。我想要实现点击按钮时,根据Checkbox是否选中来改变变量的值:选中时变量site为“Site B”,未选中时为“Site A”。
尝试编写代码:
if (Othersite.Checked) site = "Site B"; else site = "Site A";
提示错误“Togglebutton.checked must be on the left of += or -=”;
改成:
if (Othersite.Checked += true) site = "Site B"; else site = "Site A";
出现错误“CS0029 Cannot implicitly convert type 'bool' to 'System.Windows.RoutedEventHandler'”。请问我哪里出错了?我已尝试查找相关内容,但未找到合适的解决方案。
解答
- 核心错误是混淆了CheckBox的事件和属性:
Checked是用于监听选中状态变化的事件,而获取当前是否选中需要用IsChecked属性。 - 正确的if-else写法:
string site; if (Othersite.IsChecked == true) { site = "Site B"; } else { site = "Site A"; }
- 也可以用更简洁的三元运算符写法:
string site = Othersite.IsChecked == true ? "Site B" : "Site A";
- 补充:
IsChecked是可空布尔类型(bool?),所以直接写if (Othersite.IsChecked)也能正常判断选中状态,因为可空布尔值在布尔上下文会自动识别是否为true。
内容的提问来源于stack exchange,提问作者Joe Bloggs
相关产品推荐
相关产品推荐

