日期:2014-06-10  浏览次数:20476 次

数据绑定需要:

  

  1. 后台必须要有与控件对应的类和相关的属性

 

  1. 在后台new 一个类的对象

 

  1. 在后台把控件的数据上下文设置为该对象。

 

  1. XAML中把要绑定的控件中Text =      "{Binding 属性 }"

现象:在界面中修改控件中的参数可以同时反映到后台的实例中去,但是直接修改后台的实例,对界面中的参数没有影响

 

原因:由于普通对象没有“通知我的属性变了”这么一种机制,所以改变对象的属性,界面不会变,但是界面改变是有TextChanged之类的事件的,所以改变界面可以同步修改到对象

 

解决方法为类添加INotifyPropertyChanged接口,数据绑定会检测DataContext是否实现了INotifyPropertyChanged如果实现了,就会监听PropertyChanged得知属性变化

 

 1 class Person:INotifyPropertyChanged
 2     {
 3         private int age;
 4 
 5         public int Age
 6         {
 7             get
 8             {
 9                 return age;
10             }
11             set
12             {
13                 this.age = value;
14                 if (PropertyChanged != null)
15                 {
16                     PropertyChanged(this, 
17                         new PropertyChangedEventArgs("Age"));
18                 }
19             }
20         }
View Code