跟互联力量学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