按名称查找控件属性

时间:2015-05-24 17:27:57

标签: c# wpf

我正在构建C#WPF应用程序,其中包含不同网格中的许多CheckBox。 这是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 =&#34; True&#34;通过count_btn_Click()

我已尽力而为,一无所获。 (请记住,我只是一个业余爱好者,如果可能的话,请加上更多描述)。

UPD1(致Charles Mager的评论): 有更简单的方法吗?例如。如果我有一个预定义的复选框列表&#39;名。

1 个答案:

答案 0 :(得分:0)

  

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

您将如何获得该预定义列表?

一个例子可能如下所示:

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
}

我希望上面的内容让你指出正确的方向。没有a good, minimal, complete code example清楚地表明你想要完成的事情,就不可能提供具体的建议;如果上述内容看起来不够有用,请编辑您的问题,使其包含足够的详细信息,以了解您真正需要帮助的内容。