星期三, 3月 15, 2017

[X.Form] DataBinding - View to View

參考這兩篇文章的筆記
利用 Slider 控制兩個 Label 的 Rotate 和 FontSize 屬性,來了解 DataBinding

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:DataBindingSample"
             x:Class="DataBindingSample.MainPage">

    <StackLayout
        BindingContext="{x:Reference Name = slider}">

        <Label 
            Text="ROTATION"
            FontAttributes="Bold"
            FontSize="Large"
            Rotation="{Binding Path=Value}"
            HorizontalOptions="Center"
            VerticalOptions="CenterAndExpand" />

        <Label 
            Text="FontSize"
            FontAttributes="Bold"
            FontSize="{Binding Path=Value}"
            HorizontalOptions="Center"
            VerticalOptions="CenterAndExpand" />

        <Slider 
            x:Name="slider"
            Maximum="360"
            VerticalOptions="CenterAndExpand" />

        <Label 
          Text="{
            Binding Value,
            StringFormat='Slider:{0:F0}'}"
          FontAttributes="Bold"
          FontSize="Large"
          HorizontalOptions="Center"
          VerticalOptions="CenterAndExpand" />

    </StackLayout>

</ContentPage>
  • 重點1
BindingContext="{x:Reference Name = slider}" 
// 可以寫成
BindingContext="{x:Reference slider}" 
// 省略 Name
  • 重點2
可以在各別 Label 內設定 BindingContext
<Label Text="ROTATION" BindingContext="{x:Reference Name = slider}">
<Label Text="FontSize" BindingContext="{x:Reference Name = slider}">
或是直接在 StackLayout 上設定 BindingContext
<StackLayout BindingContext="{x:Reference Name = slider}">
  • 重點3
Rotation="{Binding Path=Value}"
// 可以寫成
Rotation="{Binding Value}"
// 省略 Path
  • 重點4
Text="{Binding Value,StringFormat='Slider:{0:F0}'}"
StringFormat 用單引號包起來

顯示結果
[Xamarin] DataBindng 簡易範例

沒有留言:

張貼留言