Xamarin.Forms 数据绑定

xiaoxiao2021-02-27  382

/**********************/

代码演示

/**********************/

using Xamarin.Forms; namespace momo { public partial class momoPage : ContentPage { public momoPage() { //InitializeComponent(); Label label = new Label { Text = "Opacity Binding Demo", FontSize = Device.GetNamedSize(NamedSize.Large,typeof(Label)), VerticalOptions = LayoutOptions.CenterAndExpand, HorizontalOptions = LayoutOptions.Center }; Slider slider = new Slider { VerticalOptions = LayoutOptions.CenterAndExpand }; label.BindingContext = slider; label.SetBinding(Label.OpacityProperty,"Value"); Padding = new Thickness(10, 0); Content = new StackLayout { Children = { label, slider } }; } } }

/**********************/

XAML演示

/**********************/

<?xml version="1.0" encoding="utf-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:momo" x:Class="momo.momoPage" Padding="10,0"> <StackLayout> <Label Text="Opacity Binding Demo" FontSize="Large" VerticalOptions="CenterAndExpand" HorizontalOptions="Center" BindingContext="{x:Reference Name=slider}" Opacity="{Binding Path=Value}" /> <Slider x:Name="slider" VerticalOptions = "CenterAndExpand" /> </StackLayout> </ContentPage>

using Xamarin.Forms; namespace momo { public partial class momoPage : ContentPage { public momoPage() { InitializeComponent(); } } }

可以缩短标记。为Reference提供支持的公共类是ReferenceExtension,它定义了其内容属性为name。BindingExtension(不是公共类)的内容属性是Path,因此无需Name和Path参数和等号:

<Label Text="Opacity Binding Demo" FontSize="Large" VerticalOptions="CenterAndExpand" HorizontalOptions="Center" BindingContext="{x:Reference slider}" Opacity="{Binding Value}" />

来源:Microsoft_Press_eBook_CreatingMobileAppswithXamarinForms_PDF.pdf ---- Chapter 16 Data binding

转载请注明原文地址: https://www.6miu.com/read-1364.html

最新回复(0)