在 silverlight 中支援3種繫結:oneway, twoway, onetime. 預設是 oneway.
其中 oneway 表示僅僅從資料來源繫結到目標(通常是 ui 物件),單向的;
twoway 表示既可以從資料來源繫結到目標,目標的更改也可以反饋給資料來源,使其發生更新。
而 onetime 是 oneway 的一種特例,僅載入一次資料。隨後資料的變更不會通知繫結目標物件。這樣,可以帶來更好的效能。
繫結的語法可以用大括號表示,下面是幾個例子:
""/>
等同於:
""/>
或者顯式寫出繫結方向:
""/>
按照資料繫結的語義,預設是 oneway 的,也就是說如果後台的資料發生變化,前台建立了繫結關係的相關控制項也應該發生更新。
public partial class page : usercontrol);}
list1.datacontext = persons;
}private
void button_click(object sender, routedeventargs e)
}"list1">
"horizontal">
""margin=
"20,0"
/>
""/>
但是我們點選 button 發現 listbox 裡的資料並沒有發生變化。這是因為在資料來源更新時,並沒有發出任何通知。
我們可以讓資料來源中的物件實現 inotifypropertychanged 介面,在繫結的源屬性值發生變化時,發出相關的通知資訊。
**如下:
public
class person: inotifypropertychanged
set}
private
string name;
public
string name
set}
public
event propertychangedeventhandler propertychanged;
private
void notifypropertychange(string propertyname)}}
這個**的原理很簡單,這裡就不解釋了。這樣以後,點選按鈕,前台的 listbox 中第一條資料的人名就變成了 tom:
Silverlight學習之布局
silverlight布局主要有三種布局方式 grid stackpanel和canvas canvas canvas 採用的是相對定位布局,通過canvas.left和canvas.top兩個屬性來控制元素在canvas中的位置。效果 其中從上往下第乙個按鈕距左50,距上50。第二個距左50,距上...
Silverlight學習之 Canvas物件
首先canvas為silverlight提供的乙個布局元素之一。每個子物件都呈現在canvas區域中。通過指定x和y座標,可以控制物件在canvas中的定位。這些座標以為象素為單位。x和y座標通常使用canvas.left和canvas.top的附加屬性來指定。canvas.left 指定物件與包含...
學習Silverlight最佳部落格
中文blog terrylee 我和未來有個約會 笑看風雲淡 webabcd 英文blog official silverlight website brad adams 首席產品部門經理 s blog nikhil kothari 微軟principal architect s blog jess...