WPF 之 数据绑定_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > WPF 之 数据绑定

WPF 之 数据绑定

 2014/6/3 13:16:45  梦就在路上  博客园  我要评论(0)
  • 摘要:数据绑定需要:后台必须要有与控件对应的类和相关的属性在后台new一个类的对象在后台把控件的数据上下文设置为该对象。在XAML中把要绑定的控件中Text="{Binding属性}"现象:在界面中修改控件中的参数可以同时反映到后台的实例中去,但是直接修改后台的实例,对界面中的参数没有影响原因:由于普通对象没有“通知我的属性变了”这么一种机制,所以改变对象的属性,界面不会变,但是界面改变是有TextChanged之类的事件的,所以改变界面可以同步修改到对象解决方法
  • 标签:数据

数据绑定需要:

  

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

 

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

 

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

 

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

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

 

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

 

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

 

class="code_img_closed" src="/Upload/Images/2014060313/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('bd06b595-ae59-43f8-940b-5d8e05869219',event)" src="/Upload/Images/2014060313/2B1B950FA3DF188F.gif" alt="" />
 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

 

 

 

发表评论
用户名: 匿名