標準の WinForms 開発では、次のことを行います。
foreach (Control in groupBox1.Controls)
{
MessageBox.Show(c.Name);
}
男はWPFでこれをどのように行いますか? GroupBox 内に Grid があり、グリッド内にいくつかのコントロール (ボタンなど) がありますが、各コントロールを取得する方法がわかりません。
標準の WinForms 開発では、次のことを行います。
foreach (Control in groupBox1.Controls)
{
MessageBox.Show(c.Name);
}
男はWPFでこれをどのように行いますか? GroupBox 内に Grid があり、グリッド内にいくつかのコントロール (ボタンなど) がありますが、各コントロールを取得する方法がわかりません。
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
より単純なコードは次のようになります
foreach (Control control in Grid.Children)
{
//Code here for what you want to do.
}
の代わりに.Controls
、プロパティを探し.Children
ます。
さらに、それは一次の子のみを返します。のすべての子孫が本当に必要な場合は、すべてのコントロールのすべての子を再帰的に検索する必要がありますGroupBox
。