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