当前位置:  开发笔记 > 编程语言 > 正文

删除最后一行数据绑定DataGridView C#

如何解决《删除最后一行数据绑定DataGridViewC#》经验,为你挑选了1个好方法。

我正在使用VS 2008/C#并将本地的辅助类列表绑定为DataGridView控件的DataSource.在我的助手类列表上调用Remove()方法会触发DataGridView的CellFormatting事件,这是有意义的(有点).

当删除网格中最后一行的DataBoundItem时(只要网格有多行),DataGridView的Rows集合在此事件触发之前不会更新.因此,在CellFormatting事件处理程序中,我得到一个IndexOutOfRangeException,因为Rows集合太大了.

我尝试使用DataGridView.Rows.Remove()方法删除行,并使用BindingSource进行绑定,而不是直接将List绑定为数据源.

我通过Google找到了一些关于这种情况的引用,但答案要么没有,要么说是在DataGridView或DataGridView.Rows集合上使用Delete()方法 - 目前都不存在.

排序似乎也不是问题,因为执行/不执行排序会导致相同的结果.

"最后一行"唯一的例外是删除问题,如果DataGridView只包含一行 - 在这种情况下一切正常.



1> BFree..:

我以前遇到过这个问题,如果我没记错的话,你可以做两件事之一.从集合中删除记录时,将datagridview上的datasource属性设置为null,然后将其重新绑定到列表中.这应该够了吧.

或者,您可以在dataGridview上处理DataError事件,并且在方法中您可以说e.Cancel = true来抑制异常,或者您可以在那里进一步处理它.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有