總目錄
前言
本文介紹觸發(fā)器:
一节预、屬性觸發(fā)器
二惭适、數(shù)據(jù)觸發(fā)器
三科阎、事件觸發(fā)器
四、多觸發(fā)器
五算灸、EnterActions和ExitActions
環(huán)境
1.Visual Studio 2017
2.Xamarin.Froms 4.0.0.8055-pre1
3.Android 4.4(API 19)或更高版本
4.約定:XF代表Xamarin.Forms
內(nèi)容
觸發(fā)器:控件上屬性更改或事件觸發(fā)時(shí)所引發(fā)的操作扼劈。有以下四種觸發(fā)器:
- 屬性觸發(fā)器:控件屬性變?yōu)樘囟ㄖ禃r(shí)觸發(fā);
- 數(shù)據(jù)觸發(fā)器:被監(jiān)視控件屬性變?yōu)樘囟ㄖ禃r(shí)觸發(fā)菲驴;
- 事件觸發(fā)器:控件觸發(fā)特定事件(即觸發(fā)器指定的事件)時(shí)觸發(fā)荐吵;
- 多觸發(fā)器:另一種實(shí)現(xiàn)觸發(fā)器的方式。
一赊瞬、屬性觸發(fā)器
屬性觸發(fā)器:控件屬性變?yōu)樘囟ㄖ禃r(shí)觸發(fā)先煎。
實(shí)現(xiàn)效果
效果描述:當(dāng)Entry獲取焦點(diǎn)時(shí),背景色變?yōu)闇\灰色巧涧。
實(shí)現(xiàn)方式
1.Trigger為屬性觸發(fā)器薯蝎。
2.所有觸發(fā)器主要部分如下:
- TargetType:觸發(fā)器適用的控件類型;
- EnterActions和ExitActions:使用C#代碼設(shè)置觸發(fā)器操作褒侧;
2.Trigger主要部分如下:
- Property:要監(jiān)視的控件屬性良风。例如:本例監(jiān)視屬性為IsFocused;
- Value:特定值闷供,即當(dāng)監(jiān)視的屬性變更為此值時(shí)觸發(fā)操作。例如:本例特定值設(shè)置為True统诺,即當(dāng)IsFocused值為True時(shí)觸發(fā)歪脏,也就是Entry獲取焦點(diǎn)時(shí)觸發(fā);
- Setter:設(shè)置粮呢,即觸發(fā)器觸發(fā)時(shí)婿失,使用這些設(shè)置的值;
二啄寡、數(shù)據(jù)觸發(fā)器
數(shù)據(jù)觸發(fā)器:被監(jiān)視控件屬性變?yōu)樘囟ㄖ禃r(shí)觸發(fā)豪硅。
實(shí)現(xiàn)效果
效果描述:未輸入用戶名時(shí),按鈕不可用挺物;輸入用戶名后懒浮,按鈕可用。
實(shí)現(xiàn)方式
1.DataTrigger為數(shù)據(jù)觸發(fā)器。
2.DataTrigger通過Binding的方式設(shè)置監(jiān)視控件砚著。
注意:使用Text.Length時(shí)次伶,需要將Entry的Text屬性值設(shè)為""(即:Text=""),否則Text值為null稽穆,導(dǎo)致觸發(fā)器失效冠王。
三、事件觸發(fā)器
事件觸發(fā)器:控件觸發(fā)特定事件(即觸發(fā)器指定的事件)時(shí)觸發(fā)舌镶。
實(shí)現(xiàn)效果
效果描述:點(diǎn)擊登錄按鈕柱彻,按鈕文本變?yōu)榈卿浿?..
實(shí)現(xiàn)方式
定義事件觸發(fā)器觸發(fā)操作類,使用此類響應(yīng)事件觸發(fā)器觸發(fā)時(shí)的操作:
- 第一步:繼承TriggerAction<T>抽象類餐胀,T為觸發(fā)事件的控件哟楷,這里為Button;
- 第二步:重寫Invoke方法骂澄,當(dāng)事件觸發(fā)器觸發(fā)時(shí)調(diào)用此方法吓蘑。
1.EventTrigger為事件觸發(fā)器;
2.EventTrigger沒有Setter坟冲。
3.EventTrigger使用Event設(shè)置監(jiān)聽事件磨镶,引用自定義的觸發(fā)器操作類(本例為ButtonEventTriggerAction類)響應(yīng)事件;
4.EventTrigger不支持五中所述的EnterActions和ExitActions健提。
5.可能多個(gè)Button具有相同的操作琳猫,使用觸發(fā)器,可以避免重復(fù)代碼私痹。
四脐嫂、多觸發(fā)器
多觸發(fā)器:多個(gè)觸發(fā)條件滿足時(shí)觸發(fā)。
實(shí)現(xiàn)效果
效果描述:當(dāng)用戶名和手機(jī)號(hào)都未輸入時(shí)紊遵,按鈕不可用账千,輸入任意一個(gè)時(shí)按鈕可用。
實(shí)現(xiàn)方式
1.MultiTrigger為多觸發(fā)器暗膜;
2.MultiTrigger在其Conditions中設(shè)置條件集合匀奏,只有當(dāng)所有條件都滿足時(shí),才會(huì)觸發(fā)Setter学搜;
3.本例展示了輸入用戶名或手機(jī)號(hào)按鈕便可用的效果娃善。
下節(jié)通過值轉(zhuǎn)換器實(shí)現(xiàn)用戶名和密碼必須都輸入時(shí)按鈕才可用的效果。
五瑞佩、EnterActions和ExitActions
EnterActions和ExitActions:另一種實(shí)現(xiàn)觸發(fā)器的方式聚磺。
實(shí)現(xiàn)效果
實(shí)現(xiàn)方式
首先定義觸發(fā)器操作。
EnterActions和ExitActions:另一種實(shí)現(xiàn)觸發(fā)器的方式炬丸。EnterActions在開始時(shí)觸發(fā)瘫寝,ExitActions在結(jié)束時(shí)觸發(fā),可以理解為先觸發(fā)EnterActions然后再觸發(fā)ExitActions,例如:本例中會(huì)先將Button的Text變?yōu)?登陸中..."在變成"登錄成功"矢沿。一般這兩個(gè)只定義一個(gè)即可滥搭。
后語
下篇介紹值轉(zhuǎn)換器,待續(xù)...