silverlight中数据绑定讲解

 

下面我们开始讲解silverlight中一个比较重要的知识——数据绑定。

我们对于数据绑定并不陌生,在我们ASP.NET中就涉及到了数据绑定,像我们之前学的DataList,GridView,repeater等这些数据源控件是不是都可以给它设置一个数据源,然后让这些数据源控件绑定数据源的数据,然后在我们的前台界面中显示出来。

OK,那么我们silverlight中也是一样的。

下面我们来看这样一个例子:

 

我在页面中放一个textBox和一个Slider,我们知道Slider有一个Value值,默认为0,那么现在我要实现这样一种效果,当我拖动Slider上的滑块时,我要让textBox的文本框中现实出来Value的当前值。

回想下,我们在学ASP.NET的数据绑定的时候,比如我们要让DataList绑定数据,是不是要给它设置一个数据源,然后再调用bind方法想可以呀?

那么,在我们silverlight中,我们在silverlight中进行数据绑定,需要调用到Binding这个类,而这个类所做的命名空间是:System.Windows.Data

好的,首先我们第一步,引用命名空间。

然后我们要想让它在界面一加载的时候就进行数据绑定,那么我们就在LayoutRoot_Loaded事件中添加我们的绑定代码:

好的,第二步,我们实例化一个Binding类的一个实例,这个类的构造函数有两个,我们采取第二种方式。

它要求我们穿一个string类型的,数据源的初始属性路径,也就是说,我们要绑定数据源的哪个属性,这里我们要绑定的是Slider的Value属性,那么我们的代码就应该这样写:

Binding b = new Binding("Value");

下面第三步,设置b的数据源为slider1,代码如下:

b.Source = slider1;

第四步,我们要设置绑定的模式,绑定模式有三种,我们先用OneTime这种模式,等下再详细说下这几种模式的区别。

b.Mode = BindingMode.OneTime;

最后,我们调用textBox1的SetBinding方法就可以了,注意,SetBinding方法第一参数是要传一DependencyProperty

的参数,也就是可依赖属性,我们先这样写,等下看效果。

textBox1.SetBinding(TextBox.TextProperty, b);

 

我们可以看到,其实slider的值已经绑定过来了,它默认是0,现在在textBox中显示的也是0,那么为什么我拖动它没反应呢?大家还记得刚才的绑定模式么?我说了有3种,那么第一种OneTime叫做一次绑定,也就是说只能绑定一次,那么还有两种OneWay,单向绑定。TwoWay,双向绑定,我们分别试试。

b.Mode = BindingMode.OneWay;

可以看到,我现在滑动slider滑块值,那么textBox的值也跟着变了,那么双向绑定是个什么意思呢?

我们知道,这里我是把slider作为数据源,当slider的Value值发生改变时,textBox的Text值也跟着改变。

那么,假如我现在想更改textBox的Text值,我让slider也跟着变,怎么办呢?这时候我们及用到了双向绑定。

也就是互为数据源。

OK,那么我们完整的代码如下:

 private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
        {
            Binding b = new Binding("Value");
            b.Source = slider1;
            b.Mode = BindingMode.TwoWay;
            textBox1.SetBinding(TextBox.TextProperty, b);
        }

 

 

 


原文链接: http://blog.csdn.net/mypc2010/article/details/7952726

转载于:https://my.oschina.net/changpinghu/blog/92556

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值