C# 中的INotifyPropertyChanged和ObservableCollection<T>

简介:
INotifyPropertyChanged
它的作用:向客户端发出某一属性值已更改的通知。
当属性改变时,它可以通知客户端,并进行界面数据更新.而我们不用写很多复杂的代码来更新界面数据,这样可以做到方法简洁而清晰,松耦合和让方法变得更通用.可用的地方太多了:例如上传进度,实时后台数据变更等地方。
它的作用:向客户端发出某一属性值已更改的通知。
当属性改变时,它可以通知客户端,并进行界面数据更新.而我们不用写很多复杂的代码来更新界面数据,这样可以做到方法简洁而清晰,松耦合和让方法变得更通用.可用的地方太多了:例如上传进度,实时后台数据变更等地方.目前我发现winform和silverlight都支持,确实是一个强大的接口.
在构造函数中先绑定
public Class_Name()
{
User user =  new  User();
user.Name =  "your name" ;
user.Address =  "your address" ;
 
textBox1.Text = user.Name;
textBox2.Text = user.Address;
}
编写一个简单的业务类
 
public class User : INotifyPropertyChanged
{
public   event  PropertyChangedEventHandler PropertyChanged;
 
private   string  _name;
public   string  Name
{
get  {  return  _name; }
set
{
_name = value;
if (PropertyChanged !=  null )
{
PropertyChanged( this new  PropertyChangedEventArgs( "Name" ));
}
}
}
 
private   string  _address;
public   string  Address
{
get  {  return  _address; }
set
{
_address = value;
if  (PropertyChanged !=  null )
{
PropertyChanged( this new  PropertyChangedEventArgs( "Address" ));
}
}
}
}
 
 
ObservableCollection
绑定到集合
数据绑定的数据源对象可以是一个含有数据的单一对象,也可以是一个对象的集合。之前,一直在讨论如何将目标对象与一个单一对象绑定。Silverlight中的数据绑定还能将目标对象与集合对象相绑定,这也是很常用的。比如显示文章的题目列表、显示一系列图片等。
如果要绑定到一个集合类型的数据源对象,绑定目标可以使用ItemsControl,如ListBox或DataGrid等。另外,通过定制ItemsControl的数据模板(DataTemplate),还可以控制集合对象中每一项的显示。
使用ObservableCollection
数据源集合对象必须继承IEnumerable接口,为了让目标属性与数据源集合的更新(不但包括元素的修改,还包括元素的增加和删除)保持同步,数据源集合还必须实现INotifyPropertyChanged接口和INotifyCollectionChanged接口。
在Silverlight中创建数据源集合可以使用内建的ObservableCollection类,因为ObservableCollection类既实现了INotifyPropertyChanged接口,又实现了INotifyCollectionChanged接口。使用ObservableCollection类不但可以实现Add、Remove、Clear和Insert操作,还可以触发PropertyChanged事件。

 


本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1078699

相关文章
|
10月前
|
存储 监控 安全
保护私钥不被泄露
保护私钥不被泄露
353 12
|
5月前
|
存储 算法 调度
基于和声搜索优化算法的机器工作调度matlab仿真,输出甘特图
本程序基于和声搜索优化算法(Harmony Search, HS),实现机器工作调度的MATLAB仿真,输出甘特图展示调度结果。算法通过模拟音乐家即兴演奏寻找最佳和声的过程,优化任务在不同机器上的执行顺序,以最小化完成时间和最大化资源利用率为目标。程序适用于MATLAB 2022A版本,运行后无水印。核心参数包括和声记忆大小(HMS)等,适应度函数用于建模优化目标。附带完整代码与运行结果展示。
152 24
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何在SQL语句里使用CASE WHEN语句
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
301 2
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
选中项目,点击右上角的显示全部文件按钮,会将默认隐藏的文件显示出来,选中所需图片,右键,添加到项目,然后选择图片查看属性,生成操作选择resource。完毕。本人目前的解决方案。
855 41
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
|
10月前
|
Rust 安全 前端开发
探索Rust语言的异步编程模型
探索Rust语言的异步编程模型
178 0
|
设计模式 开发框架 前端开发
基于DevExpress的GridControl实现的一些界面处理功能
基于DevExpress的GridControl实现的一些界面处理功能
|
前端开发 中间件 数据处理
MVVM模式的具体实现
MVVM模式的具体实现
175 0
|
存储 缓存 前端开发
毕业设计|SpringBoot+Vue的前后端分离个人博客系统
毕业设计|SpringBoot+Vue的前后端分离个人博客系统
224 0
|
C# 计算机视觉
WPF技术之Background
在WPF中,Background属性用于设置元素的背景。它可以接受多种类型的值,包括颜色、图像、线性渐变和径向渐变等。
1063 0
|
安全 搜索推荐 C#
.NET反编译神器ILSpy怎么用?
.NET反编译神器ILSpy怎么用?
569 0