我试图找到解决此问题的任何方法,但没有成功。我只找到了不适用于WPF的WinForms解决方案。
我有一个简单的表格,上面有一些复选框。我想知道选中了哪些复选框。我唯一知道的方法是为每个复选框创建一个方法,例如
"Checkbox1_Checked(object sender, RoutedEventArgs e)"
并在列表中添加复选框的名称(如果未选中该复选框,则将其从列表中删除)。
还有其他方法可以获取所有选中的复选框吗?像
foreach (var cb in this.Controls)
{
if (cb is Checkbox && cb.IsCheked()) // blablabla
}
答案 0 :(得分:4)
您可以为此使用LINQ。
例如,假设您将父控件命名为grid
。
var list = this.grid.Children.OfType<CheckBox>().Where(x => x.IsChecked == true);
或者,如果您不想命名它-假设您的容器源自Panel
(例如Grid
,StackPanel
...),则只需像这样强制转换< / p>
var list = (this.Content as Panel).Children.OfType<CheckBox>().Where(x => x.IsChecked == true);