c# datagridview 中DataSource的使用总结
2017-01-04 11:23
417 查看
由于当前项目的窗体更新使用的是订阅事件的方式。其中有个datagridview 动态显示统计数据的列表框。本来想用textbox显示,但不规则,看起来也不美观,改由dgv显示。
我没打算用改dgv表的方式更新表内数据,涉及到检索重复等相关的要求,比如第一个事件 把某个产品加入,第二个事件来之后如果是跟第一个事件产品一样,在这个产品数加1,若不一样则另起一行。每次事件都要检索对比一次,导致效率降低
因为我已经对这些操作在前道里边通过list做了判断。所以在dgv里边在做一次重复操作显然多此一举,我需要 的是直接把打好的包 通过datasource的方式传递给dgv。
在实践过程中,涉及到几个问题;
第一,数据源不能是普通的list ,要用到bindinglist 或者bindingsource方法,最终觉得BindingSource 的方式最好。
第二,bingdinglist 直接赋值给dgv.DataSource ,dgv窗体不显示更新,尽管数值已经改变,但窗体就是不反应, bingdinglist.refresh 或者reset 也没什么用。这里边的探索没有进一步深入,因为最终用bindingsource解决
代码很简单
一下是参考文章
http://www.cnblogs.com/monkeyZhong/p/4530795.html
我没打算用改dgv表的方式更新表内数据,涉及到检索重复等相关的要求,比如第一个事件 把某个产品加入,第二个事件来之后如果是跟第一个事件产品一样,在这个产品数加1,若不一样则另起一行。每次事件都要检索对比一次,导致效率降低
因为我已经对这些操作在前道里边通过list做了判断。所以在dgv里边在做一次重复操作显然多此一举,我需要 的是直接把打好的包 通过datasource的方式传递给dgv。
在实践过程中,涉及到几个问题;
第一,数据源不能是普通的list ,要用到bindinglist 或者bindingsource方法,最终觉得BindingSource 的方式最好。
第二,bingdinglist 直接赋值给dgv.DataSource ,dgv窗体不显示更新,尽管数值已经改变,但窗体就是不反应, bingdinglist.refresh 或者reset 也没什么用。这里边的探索没有进一步深入,因为最终用bindingsource解决
代码很简单
void OnOverTopInOrderForm(ReOverTopinOrderArgs e) //接收事件 { BindingSource bs = new BindingSource(); if (dgvovertop.InvokeRequired) { dgvovertop.BeginInvoke(new MethodInvoker(delegate { ReOverTopinOrder reovre;//= new ReOverTopinOrder(); foreach (var item in e.Reovertopinorderlist) { reovre = new ReOverTopinOrder(); reovre.卷烟名称 = item.卷烟名称; reovre.已扫数量 = item.已扫数量; //reovertb_list.Add(reovre); //reovertb_list. bs.Add(reovre); } dgvovertop.DataSource= bs; //赋值控件自动更新 //var dt= dgvovertop.DataSource as BindingList<ReOverTopinOrder>; // dt. // reovertb_list = e.Reovertopinorderlist; // dgvovertop.Refresh(); // reovertb_list.ResetBindings(); // bdlst.AddingNew // dgvovertop.DataSource = mess; // reovertb_list.Add(reovre); })); } else { // dgvovertop.DataSource = mess; } // dgvovertop.Refresh(); // reovertb_list.ResetBindings(); // ControlHelper.ShowDgvControl1(dgvovertop); // reovertb_list = e.Reovertopinorderlist; }
一下是参考文章
http://www.cnblogs.com/monkeyZhong/p/4530795.html
相关文章推荐
- 水晶报表使用总结
- .NET环境下水晶报表使用总结
- struts+hibernate使用总结
- Google中site:的使用方法总结
- DataGrid使用技巧小总结-个性化分页及复杂表头
- SCI软件使用方法总结-定位测量篇
- extern使用方法总结!
- MASM宏使用总结
- fwrite的用法和main参数的使用方法(自己的总结)
- .NET环境下水晶报表使用总结- -(转贴)
- MASM宏使用总结
- .NET环境下水晶报表使用总结
- Eclipse+Jboss使用小问题总结
- .NET环境下水晶报表使用总结
- .NET环境下水晶报表使用总结
- WSE使用总结
- .NET环境下水晶报表使用总结
- java和struts使用中的一点总结--关于写在页面上的select域的选项选中后保存状态的办法!
- 我的iBatis使用总结
- vc使用ADO操作数据库总结 选择自 CDrea 的 Blog