如何在WPF中获取组框中的控件列表
在标准的WinForms开发中,我将执行以下操作:
foreach (Control in groupBox1.Controls) { MessageBox.Show(c.Name); }
一个人在WPF中如何做到这一点? 我在GroupBox中有一个Grid和网格中的一些控件(按钮等),但似乎无法弄清楚如何获得每个控件。
正如MSDN建议的那样,您需要将控件作为GroupBox
子项进行迭代。 另外,请注意,您通常需要在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
更简单的代码就像是
foreach (Control control in Grid.Children) { //Code here for what you want to do. }
而不是.Controls
,你将寻找.Children
属性。
此外,这将只返回一阶儿童。 如果您真正想要GroupBox
所有后代,您将希望以递归方式查找所有控件的所有子项。