Я создал ползунок, который вращает метку с помощью привязки 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#?