Есть ли способ связать свойства xaml элемента с новым элементом, созданным кодом? (c# xamarin.forms) - PullRequest
0 голосов
/ 14 января 2020

Содержимое файла XAML

 <StackLayout>
    <!-- Place new controls here -->
    <Label Text="First app in c#" 
       HorizontalOptions="Center"
       VerticalOptions="CenterAndExpand" />
    <ProgressBar x:Name="pbstatus" ProgressColor="LightGreen"  Progress="0.01"/>
</StackLayout>

Фактический код (инициализация переменных)

    int countvar = 0;
    string buttoncontains = "Click Me";
    ProgressBar progressBar = new ProgressBar { ProgressColor = Color.LightGreen, Progress = 0 };

Панель прогресса над кнопками это файл xaml, другой, созданный в коде, не отображается и не привязывается к элементу, по какой-либо причине я не могу использовать индикатор выполнения, сделанный в файле xaml.

1 Ответ

0 голосов
/ 14 января 2020

Если вы хотите добавить элемент управления с помощью 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.

enter image description here

Вот полезную статью о связывании, вы можете обратиться к ней.

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/data-binding/basic-bindings

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...