2009年7月28日 星期二

Silverlight 3 中的Element to Element Binding

在SL3當中,針對Binding的功能增加了Element to Element Binding機制,雖然並不困難也不複雜,也不像是Out of Browser或是.NET RIA Services/DataForm那種大功能,但是其實妥善的運用這個小技巧也能讓我們在開發應用程式的時候方便不少。

例如,如果我們希望能夠讓 Slider在拖曳的時候,可以直接把值填入TextBox,過去SL2是一定要寫程式的,現在則可以利用底下這樣的Xaml指令碼,就可以很容易的完成:


這類的Binding機制還可以運用在data binding或是圖表等場合,實用性相當高,底下是上面Slider的例子。
[範例]

4 則留言:

承佑 提到...

老師你好
負責控制3D旋轉的PlaneProjection屬性,好像在BLEND裡面不支援設定Element to Element,用手動改XAML可以支援。
但是問題來了,如果是引用其他USERCONTROL,就沒辦法成功的Element to Element,達成動態3D旋轉的效果,例如用SLIDER去控制旋轉的X,Y,Z軸。

David 提到...

承佑,
由於UserControl把物件封裝起來了,因此可能無法直接Binding,不過,你可以嘗試看看幫你要Binding的屬性設置一個對外的public屬性在UserControl上, 然後直接對UserControl的屬性進行Binding,這樣應該可以解決你的問題。

承佑 提到...

老師你好
感謝你的指導,我回家之後會試試看。
非常感謝。

承佑 提到...

老師你好
我測試的結果.
假如UserControl叫做square.
裡面放一個Rectangle,name是r1
我從MainPage可以宣告
square sq = new square();
sq.r1可以設定Projection,但卻沒有變化.
我試了幾種方式都不行,是否真的是無法實做這項功能,或是我寫的方式有錯誤.
再請您抽空指導