Xamarin XAML語(yǔ)言教程控件模板的模板綁定

Xamarin XAML語(yǔ)言教程控件模板的模板綁定

控件模板的模板綁定

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

注意:(1)TemplateBinding類似于現(xiàn)有的Binding,不同之處在于TemplateBinding的源總是自動(dòng)設(shè)置為擁有控件模板的目標(biāo)視圖的父級(jí)。(2)不支持在控件模板之外使用TemplateBinding。

【示例14-5:ControlTemplateDemo】以下將以項(xiàng)目ControlTemplateDemo為基礎(chǔ),在控件模板中實(shí)現(xiàn)模板綁定功能。具體的操作步驟如下:

(1)打開(kāi)MainPage.xaml文件,編寫(xiě)代碼,實(shí)現(xiàn)可綁定屬性的定義。代碼如下:


(2)打開(kāi)App.xaml文件,編寫(xiě)代碼,在第一個(gè)構(gòu)建的ControlTemplate中實(shí)現(xiàn)模板綁定功能。代碼如下:


在此代碼中,我們將兩個(gè)Label控件的Text屬性實(shí)現(xiàn)了模板綁定功能,在上文中我們提到了屬性使用模板綁定將其綁定到擁有ControlTemplate的目標(biāo)視圖的父級(jí)上的可綁定屬性上。但是,在我們的代碼中,模板綁定綁定到Parent.HeaderText和Parent.FooterText上,而不是HeaderText和FooterText上。這是因?yàn)樵诖舜a中,可綁定屬性是在目標(biāo)視圖的祖父級(jí)上定義的,而不是父級(jí)。

注意:模板綁定的源始終自動(dòng)設(shè)置為擁有控件模板的目標(biāo)視圖的父級(jí),在此項(xiàng)目中是ContentView實(shí)例。模板綁定使用Parent屬性返回ContentView實(shí)例的父元素,這是ContentPage實(shí)例。

此時(shí)運(yùn)行程序,會(huì)看到和圖14.12~14.14一樣的運(yùn)行效果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容