数据绑定需要:
- 后台必须要有与控件对应的类和相关的属性
- 在后台new 一个类的对象
- 在后台把控件的数据上下文设置为该对象。
- 在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 }
时间: 2024-10-01 22:08:29