You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 01:19:55