中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Xamarin XAML語言中如何實現控件模板的模板綁定

發布時間:2021-12-21 12:00:33 來源:億速云 閱讀:190 作者:小新 欄目:互聯網科技

這篇文章主要介紹Xamarin XAML語言中如何實現控件模板的模板綁定,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

 控件模板的模板綁定

為了可以輕松更改控件模板中控件上的屬性值,可以在控件模板中實現模板綁定功能。模板綁定允許控件模板中的控件將數據綁定到公共屬性上。這時需要使用TemplateBinding。它可以將控件模板中的控件的屬性綁定到擁有控件模板的目標視圖的父級上的可綁定屬性上。

注意:(1)TemplateBinding類似于現有的Binding,不同之處在于TemplateBinding的源總是自動設置為擁有控件模板的目標視圖的父級。(2)不支持在控件模板之外使用TemplateBinding。

【示例14-5:ControlTemplateDemo】以下將以項目ControlTemplateDemo為基礎,在控件模板中實現模板綁定功能。具體的操作步驟如下:

(1)打開MainPage.xaml文件,編寫代碼,實現可綁定屬性的定義。代碼如下:

  • namespace ControlTemplateDemo

  • {

  •     public partial class MainPage : ContentPage

  •     {

  •         bool originalTemplate = true;

  •         ControlTemplate tealTemplate;

  •         ControlTemplate aquaTemplate;

  •         public static readonly BindableProperty HeaderTextProperty = BindableProperty.Create("HeaderText",

  •                                                                            typeof(string),

  •                                                                            typeof(MainPage),

  •                                                                            "Knowledge is power.");

  •         public static readonly BindableProperty FooterTextProperty = BindableProperty.Create("FooterText",

  •                                                                           typeof(string),

  •                                                                           typeof(MainPage),

  •                                                                           "Xamarin.Froms XAML");

  •         public MainPage()

  •         {

  •             InitializeComponent();

  • ……                        //此處省略了對tealTemplate和aquaTemplate對象的實例化

  •         }

  •         public string HeaderText

  •         {

  •             get

  •             {

  •                 return (string)GetValue(HeaderTextProperty);

  •             }

  •         }

  •         public string FooterText

  •         {

  •             get

  •             {

  •                 return (string)GetValue(FooterTextProperty);

  •             }

  •         }

  • ……                                //此處省略了對OnButtonClicked方法的實現

  •     }

  • }

(2)打開App.xaml文件,編寫代碼,在第一個構建的ControlTemplate中實現模板綁定功能。代碼如下:

  • <ControlTemplate x:Key="TealTemplate">

  •   <Grid>

  •     <Grid.RowDefinitions>

  •       <RowDefinition Height="0.1*" />

  •       <RowDefinition Height="0.8*" />

  •       <RowDefinition Height="0.1*" />

  •     </Grid.RowDefinitions>

  •     <Grid.ColumnDefinitions>

  •       <ColumnDefinition Width="0.05*" />

  •       <ColumnDefinition Width="0.95*" />

  •     </Grid.ColumnDefinitions>

  •     <BoxView Grid.ColumnSpan="2"

  •              Color="Teal" />

  •     <Label Grid.Column="1"

  •            Text="{TemplateBinding Parent.HeaderText}"

  •            TextColor="White"

  •            FontSize="18"

  •            VerticalOptions="Center" />

  •     <ContentPresenter Grid.Row="1"

  •                       Grid.ColumnSpan="2" />

  •     <BoxView Grid.Row="2"

  •              Grid.ColumnSpan="2"

  •              Color="Teal" />

  •     <Label Grid.Row="2"

  •            Grid.Column="1"

  •            Text="{TemplateBinding Parent.FooterText}"

  •            TextColor="White"

  •            FontSize="18"

  •            VerticalOptions="Center" />

  •   </Grid>

  • </ControlTemplate>

在此代碼中,我們將兩個Label控件的Text屬性實現了模板綁定功能,在上文中我們提到了屬性使用模板綁定將其綁定到擁有ControlTemplate的目標視圖的父級上的可綁定屬性上。但是,在我們的代碼中,模板綁定綁定到Parent.HeaderText和Parent.FooterText上,而不是HeaderText和FooterText上。這是因為在此代碼中,可綁定屬性是在目標視圖的祖父級上定義的,而不是父級。

注意:模板綁定的源始終自動設置為擁有控件模板的目標視圖的父級,在此項目中是ContentView實例。模板綁定使用Parent屬性返回ContentView實例的父元素,這是ContentPage實例。

以上是“Xamarin XAML語言中如何實現控件模板的模板綁定”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

波密县| 重庆市| 白朗县| 综艺| 布尔津县| 乐都县| 海阳市| 准格尔旗| 息烽县| 宝丰县| 泰顺县| 凤翔县| 盖州市| 自治县| 乌恰县| 榆树市| 漳平市| 横峰县| 新化县| 福贡县| 额敏县| 唐海县| 迁西县| 武威市| 阳原县| 延寿县| 玉屏| 聂荣县| 夹江县| 九龙坡区| 古蔺县| 桓台县| 建昌县| 綦江县| 长兴县| 永胜县| 东至县| 苗栗县| 五河县| 庄浪县| 台州市|