Если вы хотите добавить элемент управления с помощью C# к макету, вы можете дать имя для StackLayout в xaml.
<StackLayout x:Name="sl">
<!-- Place new controls here -->
<Label x:Name="myLabel" Text="First app in c#"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand" />
<ProgressBar x:Name="pbstatus" ProgressColor="LightGreen" Progress="0.01" />
</StackLayout>
Затем добавить элемент управления (используется sl.Children.Add()
) с помощью C# в бэкэнд-коде,
string buttoncontains = "Click Me";
Button button = new Button() {Text= buttoncontains };
button.Clicked += Button_Clicked;
ProgressBar progressBar = new ProgressBar { ProgressColor =
Color.LightGreen, Progress = 0 };
sl.Children.Add(button);
sl.Children.Add(progressBar);
Событие нажатия кнопки
private void Button_Clicked(object sender, EventArgs e)
{
pbstatus.Progress = pbstatus.Progress+0.01;
}
Я связываю текст кнопки (кнопка, созданная C#) с прогрессом pbstatus (pbstatus, созданным xaml ),
Я использовал следующий код.
button.BindingContext = pbstatus;
button.SetBinding(Button.TextProperty, "Progress");
здесь работает gif.
Вот полезную статью о связывании, вы можете обратиться к ней.
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/data-binding/basic-bindings