跟互联力量学Silverlight之五_XAML的单向和双向绑定

在上章内容中,互联力量描述了使用Static Resource表达式,引用其它元素的方法,本章重点谈下Silverlight XAML的各元素间的绑定。

单向绑定

我用简单和形象的例子说明这个问题,整个界面只要两个Silverlight控件:TextBlock和Slider。首先,新建Silverlight项目,先写个Slider,值的范围在1到40,当前的值是10,如下:

<Slider x:Name=”slider1″ Margin=”5″ Minimum=”1″ Maximum=”40″ Value=”10″ />

在Slider下面放个TextBlock显示文本,文本的字体大小,绑定到Slider的Value属性,如下:

<TextBlock x:Name=”txt1″ Margin=”10″ Text=”Foxitjob.com” FontSize=”{Binding ElementName=slider1, Path=Value}” />

运行,查看效果,拖动Slider后可以看到字体在变化,如图:


图1

双向绑定

你如果理解了单向绑定,会发现TextBlock是单方面受到Slider的影响,而不能反过来影响Slider,依此类推,双向绑定就是双方面能够相互影响。修改前面的例子,把TextBlock这样写,如下:

<TextBlock Margin=”10″ Text=”Simple Text” Name=”lblSampleText” FontSize=”{Binding ElementName=slider1, Path=Value, Mode=TwoWay}” />

不同之处是多了Mode=TwoWay,接着在界面上添加TextBox控件,原因是希望能通过输入,来准确的确定字体的大小,而不是单一靠拖动Slider,如下:

<TextBox Text=”{Binding ElementName=txt1, Path=FontSize, Mode=TwoWay}” />

很明显,TextBox和TextBlock是双向绑定,TextBlock和Slider也是双向绑定,运行程序后,先拖动Slider,TextBlock和TextBox跟着变化,然后在TextBox输入数字,按下键盘的Tab键,TextBlock和Slider也随之而改变,如下:


图2

版权所有 互联力量,原文出自:http://www.foxitjob.com/2010/06/334.html

posted @ 2010-07-16 16:47  古月山谷  阅读(323)  评论(0编辑  收藏  举报