关于INotifyPropertyChanged

做一个数据集合控件的实时更新,遇到的问题。

在silverlight中有一个ObservableCollection<T> 使用该集合绑定到的控件可以自动监控集合属性值的改变 从而做到异步更新,Winform中没有改对象,那如何实现呢,

ObservableCollection是因为T实现了INotifyPropertyChanged接口才具有的该功能 那么能不能也让数据控件的数据源中的对象也实现该接口是不是就可以了呢

关于INotifyPropertyChanged接口的实现参考 :http://technet.microsoft.com/zh-cn/ms229614

使用 BindingSource 和 INotifyPropertyChanged 接口引发更改通知:http://technet.microsoft.com/zh-cn/magazine/ms184414(VS.100).aspx

其他参考

BindingList泛型类

http://technet.microsoft.com/zh-cn/ms132679(v=vs.85)

 

类型转换:http://www.cnblogs.com/jinzhao/archive/2009/05/17/1458901.html

BindingList<T>和List<T>的构造函数参数都是IEnumerable<T>,都继承IEnumerable,直接相互强制转换。

将List<T>转换为BindingList<T>,然后设置DataGridView的DataSource为BindingList<T>!! 
BindingList<T> list= new BindingList<T>(List<T>);

BindingList<T>的DataSource转化为List<T>

List<T> modelList=new List<T>((BindingList<T>)this.DataGridView.DataSource);

数据库表监测方法

采用SQLServer2005 Broker和SqlDependency类来提供数据更改通知(原创)

 

 

posted @ 2013-01-11 15:37  Merray  Views(527)  Comments(0Edit  收藏  举报