WPF之Binding

Binding就是将数据源和目标联系起来,一般来说可以是将逻辑层对象和UI层的控件对象相关联。

有连接就有通道,就可以在通道上建立相应的验证等关卡来验证数据有效性,或是其它处理工作;同时它也支持对数据的传输方向控制。

那么,它是如何去实现的呢?Binding是通过自动侦听接口的PropertyChanged事件;因此,数据源对象就要实现INotifyPropertyChanged接口,并引发一个PropertyChanged事件,通知Binging更新了属性,那么相应的目标也做更新。

触发事件:

public class Student : INotifyPropertyChanged 
{

...

set{

...

if (PropertyChanged != null)
                {
                    this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Name"));
                }

...

}

...

public event PropertyChangedEventHandler PropertyChanged;  
}

设置Binding:

C#:this.textBox1.SetBinding(TextBox.TextProperty, new Binding("Value") { ElementName = "slider1" });


XAML:  <TextBox x:Name="textBox1" HorizontalAlignment="Left" Height="23" Margin="87,73,0,0" TextWrapping="Wrap" Text="{Binding Value,ElementName=slider1}" VerticalAlignment="Top" Width="342"/>

Text="{Binding Path=Value,ElementName=slider1}"

 

  1. if (PropertyChanged != null)  
  2.                 {  
  3.                     this.PropertyChanged.Invoke(thisnew PropertyChangedEventArgs("Name"));  
  4.                 }  
posted @ 2016-05-12 12:33  Ny.z  阅读(153)  评论(0编辑  收藏  举报