数据绑定对被绑定对象有特殊要求,如果只是普通的get;set属性的对象用在数据绑定上无法双向绑定(只有Model值不会变或者Model变了不要求界面跟着变才可以使用普通属性),
一般要求类实现InotifyPropertyChanged接口
INotifyPropertyChanged是.NET内置的接口,数据绑定会检测DataContext是否实现了INotifyPrepertyChanged,如果实现了,就会监听PropertyChanged得知属性变化了
这些字字都是让你理解的,来个实例就明白了:别的不看,就找有Binding关键字的,就明白了
比如说:我在WPF中有两个标签,都是CheckBox的,想实现点击checkBox1,checkBox2也被点击了(或者相反),怎么实现呢?
<CheckBox Content="1" Height="16" HorizontalAlignment="Left" Margin="119,55,0,0" Name="checkBox1" VerticalAlignment="Top" />
<CheckBox IsChecked="{Binding IsChecked,ElementName=checkBox1}" Content="2" Height="16" HorizontalAlignment="Left" Margin="121,88,0,0" Name="checkBox2" VerticalAlignment="Top" />
绑定就是{Binding}这个属性,IsChecked="{Binding IsChecked,ElementName=checkBox1}"意思就是checkBox2的点击事件IsChecked绑定也是IsChecked的,是谁的呢?就是用ElementName=checkBox1来实现,这样,两个控件之间,就建立了联系,互相被点击了