datagridview动态指定数据源的问题

我现在遇到一个很奇怪的问题,dataGridView绑定之后 可以正确的显示 这一点是没有问题的,就是在我点击绑定之后的dataGridView1时 会报一个错误 到主函数里面去了Main(); Application.Run(new Login());索引-1没有值!怎么会报这种错误那?? 很是不解 说明一点:我的数据集是从缓存里面得到的这一点应该也是没有问题的啊

说明:
this.dataGridView1.AutoGenerateColumns = false;
  this.dataGridView1.AllowUserToAddRows = false;
  dataGridView1.DataSource = null;
  list = CacheStrategy.Instance.GetObject(CacheKey.OrderSchedulePerson) as List<OrderSchedulingService.T_Employee_Work_RecordEntity>;
  this.dataGridView1.DataSource = list;
  ChangeBindBata(dataGridView1);这个是我绑定的时候使用的代码 就是先把list放在缓存里面 然后再去缓存中去取这一点是没有问题的,绑定也是可以绑定上的,就是绑定完成之后 再点击dataGridView1时报错。。。

 这个是点击一个确定按钮的时候 把List的加载的缓存 所以应该是先dataGridView1.DataSource = null;清空数据源 然后再绑定,这里是不是有问题啊? 但是如果不这样的话新加载的缓存是没有办法绑定上的啊?

 

问题的原因是这样的:由于数据源指定的是List 而这个List是从缓存中得到的, 指定了这个: dataGridView1.DataSource = null,数据源指定为List之后datagridview 不会自动更新 ,编译器不知道 所以会出现这个问题:索引-1没有值

 

  而BindingList是一个泛型容器,可以直接赋值给DataGridView的DataSource。而且以后的数据变化,只需要维护BindingList里的东西就行了,DataGridView自动更新数据显示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值