iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
Software Development

30天學習.Net MAUI系列 第 14

14.關於Data binding (一)

  • 分享至 

  • xImage
  •  

MAUI app由一個或多個Pages組成,每個Page通常包含多個稱為Views的UI對象。app的主要任務之一是保持這些Views同步,並跟踪它們所代表的各種values或selections。

views通常代表來自底層數據源的values ,用戶操縱這些views來更改該數據。當Views更改時,資料數據必須跟著作反映變化,或者是當資料更改時,該更改必須反映在views中

而資料系結會進行處理這些views或資料變更的通知並進行處理。資料系結會在兩個物件之間連結一組屬性,其中至少一個物件通常是UI物件。 這兩個物件稱為"target"(資料繫結設定所在的物件和屬性)和"source "(資料繫結參考的物件和屬性)

我們打開我們的MainPage.xaml並加入:

// Grid Attr
BindingContext="{x:Reference slider}

// Label Attr
FontSize="{Binding Value}"

// Slider 
<Slider x:Name="slider"
                Maximum="100" />

透過BindingContext來設定Grid屬性會參考自slider的值,並透過{Binding Value}LabelSlider給綁定繫結

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Todo.MainPage">

    <ScrollView>
        <VerticalStackLayout>
            <!-- 3 Row(2*, Auto, 100), 2 Col(Auto, Auto)-->
            <!-- * 是Width預設值(1*) -->
            <Grid RowDefinitions="2*, Auto, Auto"
                  ColumnDefinitions="Auto, 2*"
                  BindingContext="{x:Reference slider}">

                <Label Grid.Row="0"
                    Grid.ColumnSpan="2"
                    FontSize="{Binding Value}"
                    Text="Wlecome TodoPage"
                    HorizontalOptions="Center"
                    VerticalOptions="Center" />
                
                ...

            </Grid>

            <Slider x:Name="slider"
                Maximum="100" />
        </VerticalStackLayout>
    </ScrollView>

</ContentPage>

https://ithelp.ithome.com.tw/upload/images/20220929/20108931WuiMNTgOjV.png
https://ithelp.ithome.com.tw/upload/images/20220929/20108931cJL7i24NWd.png

今天簡單的介紹data binding,明天會更詳細的介紹她的其他用途以及功能


上一篇
13.關於.NET MAUI Views(三)
下一篇
15.關於Data binding (二)
系列文
30天學習.Net MAUI30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言