How to get a list of controls in a groupbox in WPF

15,763

Solution 1

As MSDN advises, you will need to iterate the controls as children of the GroupBox. Also, note that you usually need to add a Grid into your GroupBox to be able to add new controls into that GroupBox. So you will need to get the children of the Grid in that GroupBox and iterate through them, something like this:

//iterate through the child controls of "grid"
int count = VisualTreeHelper.GetChildrenCount(grid);
            for (int i = 0; i < count; i++)
            {
              Visual childVisual = (Visual)VisualTreeHelper.GetChild(grid, i);
                if (childVisual is TextBox)
                {
                    //write some logic code
                }
               else
               {

               }
            }

You might find this useful: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/93ebca8f-2977-4c36-b437-9c82a22266f6

Solution 2

Simpler code would be something like

foreach (Control control in Grid.Children)
 {
  //Code here for what you want to do.
 }
Share:
15,763

Related videos on Youtube

Douglas Anderson
Author by

Douglas Anderson

Interested in abstracted tools and languages that allow focus to shift from programming to solving business problems. if (user.dad == true &amp;&amp; user.drink == "rum" &amp;&amp; user.arcade == "1942") { name = "douglas anderson"; }

Updated on June 04, 2022

Comments

  • Douglas Anderson
    Douglas Anderson almost 2 years

    In standard WinForms development I would do the following:

    foreach (Control in groupBox1.Controls)
    {
         MessageBox.Show(c.Name);
    }
    

    How does a guy do this in WPF? I have a Grid inside the GroupBox and a number of controls in the grid (buttons etc.) but can't seem to figure out how to get each control.

  • virious
    virious over 10 years
    -1 this answer is wrong. GroupBox doesn't contain Children property.