Что происходит с XAML:
Например:
xaml в PageView.xaml:
<Label
x:Name="Geronimo"
HorizontalOptions="Center"
Text="Hello"
VerticalOptions="Center" />
Когда он построен, генерируется C# файл PageView.xaml.g.cs (который вы не изменяете вручную) генерируется. Этот файл содержит:
public partial class PageView
и
private global::Xamarin.Forms.Label Geronimo;
и
Geronimo = global::Xamarin.Forms.NameScopeExtensions.FindByName<global::Xamarin.Forms.Label>(this, "Geronimo");
В PageView.xaml.cs (в который вы вводите свой собственный код), Остальная часть частичного класса под названием PageView определена. В этом классе вы можете использовать метку Geronimo для выполнения таких действий, как:
Geronimo.Text = "Here we go";
Итак, когда в XAML используется x:Name
, создается класс (сформированный из двух частичных классов) который имеет переменную-член с указанным именем. Таким образом, если вы работаете исключительно в C#, эквивалентным является то, что у вас просто есть переменная-член с нужным именем. w
В качестве обходного пути, вы можете создать макет стека, чтобы обернуть его.
<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];
...