RadioButton.Checked错误:Control.Checked不能出现在+ =或 - =的左侧

时间:2012-06-12 20:30:59

标签: c# wpf if-statement

我遇到了最奇怪的问题,我不得不遗漏一些东西。

这是导致错误的代码。

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

if (radWaterMeter.Checked == true)
{
    SymbolSpecification = "WaterMeterRenderer";
}

正如你所看到的,我甚至不使用= +或 - = ...我实际上在我的代码中没有它...任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:14)

Checked是检查ToggleButton时引发的事件的名称。 (RadioButton类派生自ToggleButton。)

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

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

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

答案 1 :(得分:3)

备选方案,您可以检查CheckState以执行您的语句。

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

            }

编辑: 这只适用于编写winform应用程序时。它不适用于WPF。使用Douglas对WPF的回答。

答案 2 :(得分:1)

确实如此 - 我自己从Winforms转换为WPF只是遇到了这个问题。

WPF中使用:

if (radiobutton1.IsChecked == true)

作品

BUT

if (radiobutton1.IsChecked)

没有。

但是在WinForms

if (radiobutton1.Checked)

有效,但不在WPF