Silverlight的数据绑定方式有三种OneTime、OneWay和TwoWay。OneTime是默认绑定方式,初次绑定完成后就和数据有没有关系了。OneWay只要数据源有改动,控件就会显示新的
Silverlight的数据绑定方式有三种OneTime、OneWay和TwoWay。
OneTime是默认绑定方式,初次绑定完成后就和数据有没有关系了 。
OneWay只要数据源有改动,控件就会显示新的值 。
TwoWay只要数据源有改动,控件就会显示新的值;并且控件值改动时数据源也会被改动。
OneTime是最简单的,例如xaml页面:
<TextBlock Name="txtBlock1" Text="{ Binding Mode=OneTime}" />
后台绑定:
txtBlock1.DataContext = “12345”;
这样txtBlock1就会显示12345。因为Mode=OneTime是默认值,所以也可以省略掉。
OneWay,xaml页面:
<TextBlock Name="txtBlock2" Text="{Binding Mode=OneWay,Path=RandomNumber}" />
Path用来指明绑定到数据源的那个属性。
OneWay数据源的类型必须实现INotifyPropertyChanged接口,它的成员只有一个事件PropertyChangedEventHandler,在属性值改动的时候调用这个事件,例如:
RandomNumberSource类有一个属性RandomNumber,在它的set方法里触发PropertyChangedEventHandler事件。现在数据源类已经有了,我们用一个计时器模拟数据源改动时控件的值也跟着改动:
这个计时器每隔一秒对RandomNumber赋一个新的随机数,然后把这个对象绑定给 txtBlock2,我们也可以看得每隔一秒界面上的值就改变一次。
除了用后台代码绑定外,也可以绑定到某个控件。例如上面的代码里,txtBox3的Text值双向绑定到了txtBox4的,这样当txtBox3的值改变时txtBox4会改变,反之亦然。
本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。