C# RadioButton.Checked错误:Control.Checked不能出现在+;=或-=

C# RadioButton.Checked错误:Control.Checked不能出现在+;=或-=,c#,wpf,if-statement,C#,Wpf,If Statement,我遇到了一个最奇怪的问题,我肯定错过了什么 这是导致错误的代码 if (radLot.Checked == true) { SymbolSpecification = "LotRenderer"; } if (radWaterMeter.Checked == true) { SymbolSpecification = "WaterMeterRenderer"; } 如你所见,我甚至不使用=+或-=。。。实际上我的代码中没有它。。。任何帮助都将不胜感激。是选中切换按钮时引发的事

我遇到了一个最奇怪的问题,我肯定错过了什么

这是导致错误的代码

if (radLot.Checked == true)
{
    SymbolSpecification = "LotRenderer";
}

if (radWaterMeter.Checked == true)
{
    SymbolSpecification = "WaterMeterRenderer";
}
如你所见,我甚至不使用=+或-=。。。实际上我的代码中没有它。。。任何帮助都将不胜感激。

是选中
切换按钮时引发的事件的名称。(
RadioButton
类源自
ToggleButton

我假设您想要访问属性,该属性获取(或设置)是否选中了
ToggleButton

if (radLot.IsChecked == true)
{
    SymbolSpecification = "LotRenderer";
}

提示:在WPF中,大多数与可视状态相关的布尔属性都以
Is-
开头。

或者,您可以检查CheckState以执行语句

 if (radLot.CheckState == CheckState.Checked)
            {

            }
编辑:
这仅在编写winform应用程序时有效。它不适用于WPF。使用道格拉斯的WPF答案

这的确是真的-我自己从
Winforms
转换到
WPF
就遇到了这个问题

WPF
中,使用:

if (radiobutton1.IsChecked == true)
工作

但是

没有

但是在
WinForms

if (radiobutton1.Checked)

工作但不在
WPF

错误出现在哪一行?不测试是否为true,而是测试checkedstate.checked。我猜错误是:事件“Control.checked”只能出现在+=或-=(从类型“Control”中使用时除外)的左侧,读取失败。+1:有效替代选项。我通常将该属性用于支持三种状态(包括不确定)的复选框;它有助于阅读时,您的新文件。但在我变得更有经验之后,我开始使用你的方法。它不认可CheckState。。我不认为CheckState是使用单选按钮的一种方法。你是对的;它存在于WinForms中,但不存在于WPF中。要获得不确定状态,您现在需要检查
IsChecked==null
。您的权利!我只是在用winforms思考。更新帖子。我一开始用的是IsChecked,出于某种原因,它总是说水表按钮被检查了。。我不知道为什么。。。但是我要尝试CheckedState方法,我已经完全忘记了它。谢谢你的帮助!单选按钮是否在视觉上未选中?如果您的单选按钮不属于同一个父按钮,则需要对它们进行分组(使用)以强制相互排他(这意味着选中一个按钮会导致另一个按钮未选中)。
if (radiobutton1.Checked)