2009-10-01 38 views
2

在标准的WinForms开发我会做到以下几点:如何获得一个列表控件在一个组框在WPF

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

如何做一个人做在WPF?我在GroupBox内部有一个Grid和一些网格中的控件(按钮等),但似乎无法弄清楚如何获得每个控件。

回答

6

正如MSDN建议的,您将需要迭代控件作为GroupBox的子项。另外,请注意,您通常需要将Grid添加到您的GroupBox中,以便能够将新控件添加到该GroupBox中。所以,你需要得到Grid的孩子在GroupBox和遍历它们,像这样:

//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 
       { 

       } 
      } 

您可能会发现这个有用:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/93ebca8f-2977-4c36-b437-9c82a22266f6

+0

我应该使用Visual而不是Control来更精确.. – Derar 2009-10-01 18:21:44

-2

而不是.Controls,你会寻找.Children属性。

此外,这将只返回一阶子女。如果你真的想要GroupBox的所有后代,你会想递归查找所有控件的所有子元素。

+2

-1这个答案是错的。 GroupBox不包含Children属性。 – virious 2013-11-22 11:07:47

0

简单的代码会是这样的

foreach (Control control in Grid.Children) 
{ 
    //Code here for what you want to do. 
} 
相关问题