質問

標準的な 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のすべての子孫をしたい場合は、再帰的にすべてのコントロールのすべての子を見つけたいと思うでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top