检查所有CheckBox是否未选中C#WPF

时间:2016-01-19 16:24:31

标签: c# wpf checkbox

如果未选中StackPanel中的所有CheckBox,我想执行一项任务。目前我正在做这样的事情;

foreach (CheckBox c in _employees.Children)
{
    if (c.IsChecked == false)
    {
        // do something
    }
}

然而,当然这表示每当遇到错误的CheckBox时都会做一些事情。有没有办法可以说只有在未检查所有CheckBoxes时才做某事,而不是单独评估它们?

1 个答案:

答案 0 :(得分:5)

是的,您可以使用Linq

if(_employees.Children.All(c=>!c.IsChecked)) {...}

修改:您使用的UIElementCollection不是通用集合。所以你必须先施展它。代码将是

if(_employees.Children.OfType<CheckBox>().All(c=>c.IsChecked==false)) {...}

或者

if(_employees.Children.Cast<CheckBox>().All(c=>c.IsChecked==false)) {...}

第一种方法将跳过所有不属于CheckBox类型的元素,而第二种方法将在发现此类元素时抛出异常