2

標準の WinForms 開発では、次のことを行います。

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

男はWPFでこれをどのように行いますか? GroupBox 内に Grid があり、グリッド内にいくつかのコントロール (ボタンなど) がありますが、各コントロールを取得する方法がわかりません。

4

4 に答える 4

6

MSDN がアドバイスしているように、コントロールを の子として繰り返す必要がありますGroupBox。また、通常、新しいコントロールを追加できるようにするには、を追加する必要があることに注意してGridください。そのため、その中の の子を取得して、次のように繰り返す必要があります。GroupBoxGroupBoxGridGroupBox

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

于 2009-10-01T18:11:51.583 に答える
1

より単純なコードは次のようになります

foreach (Control control in Grid.Children)
 {
  //Code here for what you want to do.
 }
于 2015-01-30T03:19:24.520 に答える
-3

の代わりに.Controls、プロパティを探し.Childrenます。

さらに、それは一次の子のみを返します。のすべての子孫が本当に必要な場合は、すべてのコントロールのすべての子を再帰的に検索する必要がありますGroupBox

于 2009-10-01T17:44:56.053 に答える