Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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
为每个循环c#Xamarin调整标签中的多个文本_C#_Android_Xamarin_Foreach - Fatal编程技术网

为每个循环c#Xamarin调整标签中的多个文本

为每个循环c#Xamarin调整标签中的多个文本,c#,android,xamarin,foreach,C#,Android,Xamarin,Foreach,我有一个简单的for-each循环,它应该用列表中结果的字符串(result.naampartij)填充表单中的多个标签。现在我想使用I来指示我要填充哪个标签,以便每个标签都有该结果的“naampartij”。像这样: int i = 0; foreach (var result in results) { i++; label[i].Text = result.naamp

我有一个简单的for-each循环,它应该用列表中结果的字符串(result.naampartij)填充表单中的多个标签。现在我想使用
I
来指示我要填充哪个标签,以便每个标签都有该结果的“naampartij”。像这样:

        int i = 0;

        foreach (var result in results)
        {            

            i++;
            label[i].Text = result.naampartij;

        }

当我这样做时,visual studio会将
label[i]
注册为一个名称,而不是作为
label1
label2
label3
等,随着循环的进行

例如:

PageView.xaml中的xaml:

<Label
    x:Name="Geronimo"
    HorizontalOptions="Center"
    Text="Hello"
    VerticalOptions="Center" />

因此,当在XAML中使用
x:Name
时,将创建一个具有指定名称的成员变量的类(由两个分部类组成)。因此,如果您纯粹在C#中工作,等价的是您只需要有一个具有所需名称的成员变量。w

作为一种解决方法,您可以创建一个stacklayout来包装它

<StackLayout Orientation="Vertical" x:Name="layout">

</StackLayout>
并通过查找标签

Label label1 = (Label)layout.Children[0];
Label label2 = (Label)layout.Children[1];
 ...

现在还不清楚您想要实现什么,但是您是否可以使用for循环来代替foreach?C#不是这样工作的。您可以使用反射来实现这一点,但只构建一个列表或数组并引用要更新的标签要简单得多。
Geronimo = global::Xamarin.Forms.NameScopeExtensions.FindByName<global::Xamarin.Forms.Label>(this, "Geronimo");
Geronimo.Text = "Here we go";
<StackLayout Orientation="Vertical" x:Name="layout">

</StackLayout>
foreach (var result in results)
    {            


        Label label = new Label();
        label.Text = result.naampartij;
        layout.Children.Add(label);
    }
Label label1 = (Label)layout.Children[0];
Label label2 = (Label)layout.Children[1];
 ...