Привязка OneWayToSource с C# в Xamarin - PullRequest
0 голосов
/ 28 мая 2020

Я создал ползунок, который вращает метку с помощью привязки OneWayToSource в XAML, чтобы понять, как работают Режимы привязки .

Я заставил его работать с помощью XAML, но когда я попытался для достижения того же результата в C# ползунок не поворачивает этикетку.

Подход XAML (который работает):

XAML:

<StackLayout x:Name="stackLayout">
    <Label x:Name="Label" Text="XAML" VerticalOptions="CenterAndExpand" HorizontalOptions="Center"></Label>
    <Slider BindingContext="{x:Reference Label}"  Maximum="360.0" Value="{Binding Path=Rotation, Mode=OneWayToSource}"></Slider>
</StackLayout>

Код позади:

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }
}

C# подход (который не работает):

XAML:

<StackLayout x:Name="stackLayout">
</StackLayout>

Код позади:

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();

        Slider rotationSlider = new Slider {Maximum = 360.0};
        Label label = new Label
        {
            Text = "Code",
            VerticalOptions = LayoutOptions.CenterAndExpand,
            HorizontalOptions = LayoutOptions.Center
        };
        rotationSlider.SetBinding(RotationProperty, "Value", BindingMode.OneWayToSource);
        rotationSlider.BindingContext = label;

        stackLayout.Children.Add(label);
        stackLayout.Children.Add(rotationSlider);
    }
}

Что я делаю не так? подход C#?

1 Ответ

1 голос
/ 28 мая 2020

у вас есть это наоборот - вы хотите привязать Value слайдера к Rotation

rotationSlider.SetBinding(Slider.ValueProperty, "Rotation", BindingMode.OneWayToSource);
ярлыка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...