gpt4 book ai didi

c# - 删除行后 XtraGrid 行索引不匹配

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:59 26 4
gpt4 key购买 nike

我目前正在使用 XtraGrid。我已将 gridControl 绑定(bind)到 DataTable。当我从 DataTable 中删除一行时,XtraGrid 会显示更改。但是当我开始处理行索引时,我会遇到奇怪的行为。

这是(大致)我用来删除行的代码。

DataTable dtWorkItems;
...
gridWorkItemList.DataSource = dtWorkItems;
...
int currRowHandle = gridViewWorkItemList.FocusedRowHandle;
int currRowIndex = gridViewWorkItemList.GetDataSourceRowIndex(currRowHandle);
DataRow theRow = gridViewWorkItemList.GetDataRow(currRowHandle);
theRow.Delete();

但是这个测试后来失败了:

int rowHandle = gridViewWorkItemList.FocusedRowHandle;
int rowIndex = gridViewWorkItemList.GetDataSourceRowIndex(rowHandle);
DataRow dr1 = gridViewWorkItemList.GetDataRow(rowHandle);
DataRow dr2 = dtWorkItems.Rows[rowIndex];
if (dr1 != dr2)
; // Failure

其实dr2的状态是“已删除”。

如果我对 dtWorkItems 执行 AcceptChanges(),则测试将通过。但我宁愿不那样做。

我必须做些什么才能让行索引重新开始匹配吗?

最佳答案

您应该从数据源 ( dtWorkItems ) 中删除它,如果没有自动刷新网格,则进行刷新。网格只是 dtWorkItems 的一个 View 。也许您已经在 Acceptchanges 工作时这样做了,为什么您不想接受您所做的更改?

关于c# - 删除行后 XtraGrid 行索引不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7507833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com