【发布时间】:2019-02-28 23:14:53
【问题描述】:
我试图为这个问题找到任何解决方案,但没有成功。我只找到了不适用于 WPF 的 WinForms 解决方案。
我有一个简单的表单,上面有一些复选框。我想知道检查了哪些复选框。我知道的唯一方法是为每个复选框创建一个方法,例如
"Checkbox1_Checked(object sender, RoutedEventArgs e)"
并在列表中添加复选框的名称(如果未选中该框,则将其从列表中删除)。
有没有其他方法可以获得所有选中的复选框?类似的东西
foreach (var cb in this.Controls)
{
if (cb is Checkbox && cb.IsCheked()) // blablabla
}
【问题讨论】:
-
您不必为它们中的每一个创建方法。在你的情况下,一种方法就足够了。
-
在 WPF 中,所有组件都存在于其他组件中,通常是 Panel(或派生组件,如 Grid、StackPanel 等),您必须获取面板的所有子项,因此可以将所有 Checkbox 获取到面板中并进行验证无论是否选中,一个好的解决方案是执行@Shawn的答案