上一节中主要介绍了在cs代码中进行绑定数据源的实现,后面将逐步介绍下为Binding指定数据源的几种方法。这一节,我们先介绍以CLR对象和对象名称作为Binding的数据源:
一 以CLR对象作为Binding的数据源。
一 以CLR对象作为Binding的数据源。
首先,介绍下CLR对象的概念。这里,只是我自己一个简单的理解,并没有涉及CLR很深层次的理论性的东西,因为我也不懂~。在C#中我们会经常看到下面这种类:
public class Student:
{
private string name;
public string Name
{
get { return name; }
set
{
name = value;
}
}
}
在这里面,我们可以看到,Student类分别定义了两个属性,name和Name,而name是类普通的私有的属性,而Name就是类的CLR属性。CLR属性的本质其实是方法,通过对get和set方法的封装而给人看做属性的样子。我们这里所说的CLR对象就是包含了CLR属性的对象,而值得注意的是,Binding的Path必须是一个数据源的CLR属性,如果设置成普通的属性,那么绑定是无效的。
将对象作为Binding的Source的方法其实就是第一节中介绍的内容,这里不在详述,简要概括下来就是:
1、建立一个 Student对象student。
2、建立一个Binding类对象binding,将binding的Path指定为Name,Source指定为student。
3、利用控件如TextBox对象的SetBinding方法将控件的依赖属性(简单理解就是可以依赖Path而变化的属性)和binding关联。
二 以对象名称作为Binding的数据源。
下面,介绍下以对象名称作为Binding的数据源的方法,请看如下代码:
<Slider Name="slider1" VerticalAlignment="Top" Width="100" />
<TextBox Name="textBlock1" Text="{Binding Path=Value,ElementName=slider1,Mode=OneWayToSource,UpdateSourceTrigger=PropertyChanged}" />
以上代码的作用是将一个TextBox对象的Text的值和一个Slider对象进行绑定,从而实现动态的显示Slider对象的值。在这里我们先设置了Binding的Path为Slider对象的CLR属性Value,然后并没有指定Binding的Source,而是通过ElementName指定数据源的名称,实现了绑定。