我正在尝试更新数据网格视图中的数据(基于用户设置的检查),而不会丢失选择(进行计算)。这对我有用,但比清除完整的dgv慢很多,制作一个新的数据表并绑定它。
这就是我的尝试:
当datagridview需要完全更新(不同行数)时,我清除datagridview,创建一个新的数据表并绑定它。这很好用而且速度很快,但选择丢失了。选择丢失没问题,因为数据是全新的。
有时我只需要更新datagridview中的值(我不想丢失选择)。我试图直接更新绑定数据表(工作)中的值或datagridview中的值(这也有效)。但是,两者都比使用第一种方法创建一个全新的datagridview要慢 lot : - (
更新datagridview时,我会停止绘制放置它的面板
有人可以解释为什么更新cellvalues比重做整个事情要慢得多吗?
有没有其他方法可以做到而不会失去选择?我可以记住选择并再次设置它,但是我失去了选择的方式/命令单元格和列。
答案 0 :(得分:0)
我终于找到了发生大延迟的地方。我完全专注于DataGridView,但它发现了绑定到它的DataTable中发生的延迟。
为了快速做到:
[代码]
for (int Row = 0; Row < MyDataTable.Rows.Count; Row++) MyDataTable.Rows[Row].BeginEdit();
// do your changes in the DataGridView (not the DataTable) here
UpdateDataGridView();
// never accept the changes in the DataTable, it will lose the selection in the DataGridView. Problem is that the DataTable is never updated, but this is not a problem in my case.
//MyDataTable.AcceptChanges();
[/代码]