当前位置: 首页 > 编程语言 > C#

DataGridView和List的DataBinding和BindingSource分享

时间:2023-04-11 01:56:34 C#

DataGridView和List的DataBinding和BindingSource列表已更新。当我检查调试器时,我可以看到List增长并验证它是否已填充。我认为BindingSource会在List更改时触发一个事件。但没有人被解雇。基础列表更改时如何通知我?我按照说明进行操作并提供了以下测试代码:数据d;绑定源bs;publicForm1(){InitializeComponent();bs=newBindingSource();d=新数据();}privatevoidForm1_Load(objectsender,EventArgse){bs.DataSourceChanged+=newEventHandler(bs_DataSourceChanged);bs.ListChanged+=newListChangedEventHandler(bs_ListChanged);bs.DataMemberChanged+=newEventHandler(bs_DataMemberChanged);bs.CurrentChanged+=newEvent.IChtemCurrents(bangs_Current);=新事件处理程序(bs_CurrentItemChanged);bs.DataSource=d.list;dataGridView1.DataSource=bs;}//...在VS中使用断点捕获的所有处理方法。privatevoidbutton1_Click(objectsender,EventArgse){d.addOneItem();}列表不支持变化事件;BindingList将是支持这种情况的良好替代品,如果您的类型T实现了INotifyPropertyChanged,它还支持项目级更改事件。在3.0及以上,还有ObservableCollection,作用类似于BindingList。这一切都归结为IBindingList、IBindingListView等接口。来自评论;对于2.0/3.0示例,将Find添加到BindingList:foreach(Titeminthis){if(predicate(item))返回项目;}返回默认值(T);请注意,在3.5中(或在使用LINQBridge和C#3.0的.NET2.0/3.0中)你不需要这个-任何LINQ扩展方法都会做同样的事情。如果您想在属性更改时收到通知,则需要实现INotifyPropertyChanged示例请参见此处。以上就是C#学习教程分享的全部内容:DataGridView和List的DataBinding和BindingSource。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。侵权请点击右侧联系管理员删除。如需转载请注明出处: