按名称查找控件属性

本文关键字:控件 属性 查找 | 更新日期: 2023-09-27 17:50:31

我正在构建c# WPF应用程序,其中包含不同网格中的许多复选框。下面是XAML代码的一个示例:

<Grid x:Name="grid1">
  <CheckBox x:Name="box1" Content="Box 1"/>
</Grid>
<Grid>
  <Grid x:Name="grid4">
    <CheckBox x:Name="box12" Content="Box 12"/>
  </Grid>
</Grid>

等等

在代码后面,我需要得到一个列表的框与属性IsChecked="True"的count_btn_Click()

我什么都试过了,什么也没找到。(请记住,我只是一个业余爱好者,所以如果可能的话,请添加更多的描述)。

UPD1(对Charles Mager的评论):有没有更简单的方法?例如,如果我有一个预定义的复选框名称列表

按名称查找控件属性

如果我有一个预定义的复选框名称列表

如何获得预定义的列表?

一个例子可能是这样的:

class MainWindow : Window
{
    private CheckBox[] _checkBoxes;
    public MainWindow()
    {
        InitializeComponent();
        _checkBoxes = 
        {
            box1,
            box12,
            // etc.
        };
    }
}

那么您应该能够通过一个简单的LINQ过滤器获得对象的枚举:

_checkBoxes.Where(x => x.IsChecked);
例如:

foreach (CheckBox checkBox in _checkBoxes.Where(x => x.IsChecked))
{
    // do something with each checkBox value
}

我希望以上能让你找到正确的方向。如果没有一个好的、最小的、完整的代码示例来清楚地显示您想要完成的内容,就不可能提供具体的建议;如果上面的内容似乎没有足够的帮助,请编辑您的问题,使其包含足够的细节,以了解您真正需要帮助的内容。