Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf foreach语句不能对类型为';System.Windows.Controls.GroupBox';_Wpf_C# 4.0_Foreach - Fatal编程技术网

Wpf foreach语句不能对类型为';System.Windows.Controls.GroupBox';

Wpf foreach语句不能对类型为';System.Windows.Controls.GroupBox';,wpf,c#-4.0,foreach,Wpf,C# 4.0,Foreach,foreach语句无法对类型为的变量进行操作 “System.Windows.Controls.GroupBox”因为 “System.Windows.Controls.GroupBox”不包含公共 “GetEnumerator”的定义 霉菌代码: foreach (var txt in this.groupBox1.Children) { if (txt is TextBox) { (txt

foreach语句无法对类型为的变量进行操作 “System.Windows.Controls.GroupBox”因为 “System.Windows.Controls.GroupBox”不包含公共 “GetEnumerator”的定义

霉菌代码:

    foreach (var txt in this.groupBox1.Children)
        {
            if (txt is TextBox)
            {
                (txt as TextBox).Text = string.Empty;
            }
        }
但是为什么网格的代码是正确的呢

    foreach (var txt in this.MyGrid.Children)
    {
        if (txt is TextBox)
        {
            (txt as TextBox).Text = string.Empty;
        }
    }
groupBox的正确代码是什么

/////////////////编辑

正确的代码:


您的第一个代码片段甚至不会编译(假设
groupBox1
确实是
GroupBox
),因为
GroupBox
没有
子属性

GroupBox
只能包含一个子项,由其
Content
属性表示

如果需要迭代
GroupBox
的所有可视子对象,则可以使用
visualtreeheloper
类。大概是这样的:

for (int i = 0; i < VisualTreeHelper.GetChildrenCount(groupBox1); i++)
{
    var txt = VisualTreeHelper.GetChild(groupBox1, i);
    if (txt is TextBox) ...
}
foreach (var txt in groupBox1.GetVisualChildren<TextBox>())
{
    txt.Text = String.Empty;
}
您可以这样使用:

for (int i = 0; i < VisualTreeHelper.GetChildrenCount(groupBox1); i++)
{
    var txt = VisualTreeHelper.GetChild(groupBox1, i);
    if (txt is TextBox) ...
}
foreach (var txt in groupBox1.GetVisualChildren<TextBox>())
{
    txt.Text = String.Empty;
}
foreach(groupBox1.GetVisualChildren()中的var txt)
{
txt.Text=String.Empty;
}

您的第一个代码片段甚至不会编译(假设
groupBox1
确实是
GroupBox
),因为
GroupBox
没有
子属性

GroupBox
只能包含一个子项,由其
Content
属性表示

如果需要迭代
GroupBox
的所有可视子对象,则可以使用
visualtreeheloper
类。大概是这样的:

for (int i = 0; i < VisualTreeHelper.GetChildrenCount(groupBox1); i++)
{
    var txt = VisualTreeHelper.GetChild(groupBox1, i);
    if (txt is TextBox) ...
}
foreach (var txt in groupBox1.GetVisualChildren<TextBox>())
{
    txt.Text = String.Empty;
}
您可以这样使用:

for (int i = 0; i < VisualTreeHelper.GetChildrenCount(groupBox1); i++)
{
    var txt = VisualTreeHelper.GetChild(groupBox1, i);
    if (txt is TextBox) ...
}
foreach (var txt in groupBox1.GetVisualChildren<TextBox>())
{
    txt.Text = String.Empty;
}
foreach(groupBox1.GetVisualChildren()中的var txt)
{
txt.Text=String.Empty;
}
not work:for(int i=0;i