2009-10-01 37 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. 
} 
相關問題