博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
InotifyPropertyChanged接口实现简单数据绑定
阅读量:5058 次
发布时间:2019-06-12

本文共 1199 字,大约阅读时间需要 3 分钟。

UI跟踪对象变化的一种常用方式就是在对象属性发生变化时触发相关的事件。为此对象就必须实现InotifyPropertyChanged接口。

在Msdn上是这样描述的:向客户端发出某一属性值已更改的通知。

下面看一个例子:

public class Person: InotifyPropertyChanged

{

public eventPropertyChangedEventHandler propertyChanged;

protected voidNotify(string propName)

{

if(this.PropertyChanged!=null)

{

       propertyChanged(this,newpropertyChangedEventArgs(propName));

}

}

 

string name;

public stringName

{

get{return this.name;}

set

{

       if(this.name==value){return;}

       this.name=value;

       Notify(“Name”);

}

}

 

       intage;

       publicint Age

       {

get{return this.age;}

set

{

       if(this.age==value){return;}

       this.age=value;

       Notify(“Age”);

}

       }

}

当Person对象属性发生变化时,Person类就会触发PropertyChanged事件,利用此事件可以让textbox的内容和Person类的属性值保持同步。

具体实现如下:

 

Class Window1:Window

{

Person person =new Person(“Tom”,11);

Person.PropertyChanged+=person_PropertyChanged;

}

 

Void person_PropertyChanged(objectsender,PropertyChangedEventArgs e)

{

switch(e.PropertyName)

{

case “Name”:

this.nameTextBox.Text=person.Name;

bresk;

 

case “Age”:

this.ageTextBox.Text=person.Age;

break;

}

}

这里注册了person类属性的变更事件PropertyChanged,从而保证了文本框和对象属性的同步。需要注意的是,用户修改控件TextBox的内容时person对象的属性不会发生变化,需要使用TextChanged事件对person类属性进行变更。

转载于:https://www.cnblogs.com/fornet/archive/2013/03/05/2976189.html

你可能感兴趣的文章
iOS 使用Quartz 2D画虚线 【转】
查看>>
平面最接近点对
查看>>
HTML列表,表格与媒体元素
查看>>
PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点?
查看>>
感谢青春
查看>>
Jquery Uploadify4.2 falsh 实现上传
查看>>
雨林木风 GHOST_XP SP3 快速装机版YN12.08
查看>>
linux基础-命令
查看>>
java对象的深浅克隆
查看>>
Hadoop流程---从tpch到hive
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
V2019 Super DSP3 Odometer Correction Vehicle List
查看>>
Python 3.X 练习集100题 05
查看>>
今时不同往日:VS2010十大绝技让VS6叹服
查看>>
设计器 和后台代码的转换 快捷键
查看>>
在线视频播放软件
查看>>
用代码生成器生成的DAL数据访问操作类 基本满足需求了
查看>>
28初识线程
查看>>
Monkey测试结果分析
查看>>