WPF でグループボックス内のコントロールのリストを取得する方法
-
19-09-2019 - |
質問
標準的な WinForms 開発では、次のことを行います。
foreach (Control in groupBox1.Controls)
{
MessageBox.Show(c.Name);
}
WPF でこれをどのように行うのでしょうか?GroupBox 内にグリッドがあり、グリッド内に多数のコントロール (ボタンなど) がありますが、各コントロールを取得する方法がわからないようです。
解決
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
のすべての子孫をしたい場合は、再帰的にすべてのコントロールのすべての子を見つけたいと思うでしょう。
所属していません StackOverflow