Xamarin.Forms 数据绑定

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

代码演示

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值