Winform BindingList使用注意事项

Winform 使用BindingList


经过探索,winform中控件继承ListControl,如Listbox、Combox、datagridview等如需使用绑定数据源的形式,

var Lbx=new ListBox();//ListControl派生控件
var list=new BindingList<T>();//T为实际数据类型
Lbx.DataSource = list;
Lbx.DisplayMember = "PropertyName";//需要显示的属性名称

然后在需要操作list的时候直接操作即可 add,remove等,以下为需要注意的地方:

  1. 如果控件为listbox,T为基础类型如int,此时操作list增删操作不刷新控件,临时解决方案是将基础类型再封装一层自定义类型,以便设置DisplayMember,其他Combox等不受影响;
  2. 在遇到线程中操作list的时候,一定要正确操作,即此时从线程中改变绑定源,如需更新界面,需要使用Lbx的Invoke()或者BeginInvoke()方法进一步封装,此原理类似于WPF更新机制;
private void OnReceivedMsg(T msg)//线程回调方法
{
	Lbx.Invoke(()=>list.Add(msg));//直接使用list.Add(msg),控件不会刷新,此时也不会报错
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值