Binding基础

Binding基础

一般情况,Binding Source是逻辑层的对象,Binding Target是UI层的控件对象。

举例如下:

class Student : INotifyPropertyChanged
{   
    public event PropertyChangedEventHandler PropertyChanged;
    private string name;
    public string Name
    {
        get {return name;}
        set {name = value;}
        if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs("Name"));
            }
    }
}

UI上的元素关心的是哪个属性的值变化,这个属性就称为Binding的Path,但光有属性还不行-Binding是一种自动机制,需要在属性的set语句中激发一个PropertyChanged事件。这个事件不需要我们自己声明,我们要做的是让数据源的类实现System.ComponentModel名称空间的*INotifyPropertyChanged
*接口。

接下来,我们进入重要的一步-使用Binding把数据源和UI元素连接起来。

//准备数据源
Student stu = new Student();

//准备Binding
Binding binding = new Binding();
binding.Source = stu;
binding.Path=new PropertyPath("Name");

//使用Binding连接数据源与Binding目标
BindingOperations.SetBinding(this.textBoxName, TextBox.TextProperty, binding);
  • 第一个参数用于指定Binding的目标,本例中是this.textBoxName
  • 与数据源的Path原理类似,第二个参数用于为Binding指明把数据送到目标的哪个属性。这里用的是类的一个静态只读(static readonly)的DependencyProperty类型成员变量。这就是与Binding息息相关的依赖属性
  • 第三个参数就是指定使用哪个Binding实例将数据源与目标关联起来
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值