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

C# 检查是否未选中所有复选框C WPF,c#,wpf,checkbox,C#,Wpf,Checkbox,如果StackPanel中的所有复选框都未选中,我希望执行一项任务。现在我在做这样的事情, foreach (CheckBox c in _employees.Children) { if (c.IsChecked == false) { // do something } } 然而,这当然意味着每次遇到错误的复选框时都要做一些事情。是否有一种方法可以说,只有在所有复选框都未选中的情况下才执行某项操作,而不是单独对它们进行评估?是的,例如,您可以使用:

如果StackPanel中的所有复选框都未选中,我希望执行一项任务。现在我在做这样的事情,

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

然而,这当然意味着每次遇到错误的复选框时都要做一些事情。是否有一种方法可以说,只有在所有复选框都未选中的情况下才执行某项操作,而不是单独对它们进行评估?

是的,例如,您可以使用:

编辑:您使用的UIElementCollection不是常规集合。所以你必须先投。代码将是

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


第一种方法将跳过所有非复选框类型的元素,而第二种方法将在找到此类元素时引发异常。是,例如,您可以使用:

编辑:您使用的UIElementCollection不是常规集合。所以你必须先投。代码将是

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


第一种方法将跳过所有非复选框类型的元素,而第二种方法将在发现此类元素时引发异常

否定版本为employees.Children.Anyc=>c.CheckedHmm我正在获取UIElementCollection没有针对所有元素的定义_员工是一个StackPanel…使用System.Linq添加;到您的文件的顶部。这是一个扩展method@OlegGolovkov除非我真的近视了,否则在添加使用后仍然没有运气…哦,我明白为什么会发生这种情况,检查我的更新答案否定的版本是employees.Children.Anyc=>c.CheckedHmm我得到的UIElementCollection没有一个定义_员工是一个StackPanel…使用System.Linq添加;到您的文件的顶部。这是一个扩展method@OlegGolovkov除非我真的近视了,否则在添加使用后仍然没有运气…哦,我明白为什么会发生这种情况,检查我的更新答案
if(_employees.Children.Cast<CheckBox>().All(c=>c.IsChecked==false)) {...}