检查复选框的IsChecked属性时出现意外行为

时间:2013-06-03 21:25:05

标签: wpf checkbox ischecked

我们在用户控件上有6 CheckBox个es。我们希望能够确定是否检查了6个盒子中的每个盒子。我们在后面的代码中尝试在此事件中执行此操作:

private const short Black = 1;
private const short White = 32;
private const short Asian = 2;
private const short Islander = 8;
private const short AmInd = 4;
private const short Alask = 16;

private void RaceCheckboxes_Checked(object sender, System.Windows.RoutedEventArgs e)
{
    short race = 0;

    if (cbAlask.IsChecked == true)
    {
        race += Alask;
    }
    if (cbAmInd.IsChecked == true)
    {
        race += AmInd;
    }
    if (cbIslander.IsChecked == true)
    {
        race += Islander;
    }
    if (cbAsian.IsChecked == true)
    {
        race += Asian;
    }
    if (cbWht.IsChecked == true)
    {
        race += White;
    }
    if (cbBlack.IsChecked == true)
    {
        race += Black;
    }

    atr.Race = race;
}

我不明白的是这个。当用户单击名为cbWht的复选框时,它会输入此事件,并且所有6个复选框IsChecked属性都为true。这是为什么?其中只有一个被检查过。

1 个答案:

答案 0 :(得分:0)

尝试使用Clicked事件而不是Checked事件。即RaceCheckboxes_Clicked