Trigger和DataTrigger簡單應用

2022-09-17 10:45:10 字數 1358 閱讀 1170

在wpf中,sytle是乙個非常重要的東西,它是一種對屬性值的處理,其中trigger(觸發器)則是在屬性值的處理中加上條件。

wpf定義了五種trigger來作為觸發條件,分別是:trigger,datatrigger,multitrigger,multidatatrigger,eventtrigger。

下面最簡單的乙個trigger是這樣寫的:

view code

在條件設定中,只要滑鼠移動到button上面時,就可以引動到觸發器,然後設定它的長寬,當滑鼠移開時候,觸發器就會失效,然後就會變到原來的值。這個觸發器以控制項的屬性作為觸發條件。

還有時會用到datatrigger,這個一般以控制項datacontext的屬性作為觸發條件。當某個資料值是想要的值時,就可以設定相應的樣式。

有時候也可以先設定乙個依賴屬性,然後根據不同的條件來設定不同的屬性值,再通過datatrigger來設定也是可以的,下面有乙個例子來運用一下datatrigger:

view code

"

textbox

" width="

100" height="

50" margin="

10" background="

,path=text,

updatesourcetrigger=propertychanged}"

textchanged=

"textbox_textchanged_1"

>

view code

private

void textbox_textchanged_1(object

sender, textchangedeventargs e)

}public

string

labelbackground

set }

public

static

readonly dependencyproperty labelbackgroundproperty =dependencyproperty.register(

"labelbackground

", typeof(string), typeof(mainwindow), new propertymetadata(null));

好吧~其實上面也只是硬要用一下而已~純屬娛樂。。。當然在很多時候用這個也是很方便的!

multitrigger,multidatatrigger這兩個和上面差不多,只是多屬性觸發罷了。

eventtrigger是以routedevent作為觸發條件,當指定的路由事件raise時觸發。這個暫時還沒怎麼玩過,等下次用到再說=-=

建立sequence和TRIGGER實現ID自增長

create table s if erptransferlog jobid varchar2 200 not null,startdatetime timestamp not null,enddatetime timestamp not null,usedtime number 10,0 not ...

jQ的select事件和trigger方法的小衝突

方法和事件都不難理解,分開用也都沒問題,但是一起用就有些小問題出現。直接上結論 使用trigger方法觸發乙個文字型別的 input 元素的select事件時,chrome瀏覽器會錯誤的觸發三次,firefox和ie11只會正常觸發一次 解決辦法也簡單,把trigger換成triggerhandle...

關於trigger的muting table異常

研究方法 為測試表建立 insert,delete,update 對應的after,before觸發器,在觸發器中訪問當前表,然後執行測試的 insert,delete,update 語句觸發這個觸發器,檢視是否有異常 ora 04091 table yc.tr1 is mutating,trigg...