gpt4 book ai didi

c# - 获取筛选后的 DataGrid 中选定行的索引

转载 作者:行者123 更新时间:2023-11-30 12:26:57 25 4
gpt4 key购买 nike

我在 WinForms 中使用 DataGrid 类并使用 RowFilter 过滤数据。

//docRows = some DataTable
dgDocRow.DataSource = docRows;
docRows.DefaultView.RowFilter = "WHERE ID > 1"

现在网格只显示过滤后的行

当我想访问网格中的选定行时,我使用

int i = docRows.CurrentRowIndex;
DataRow dr = ((DataTable)docRows.DataSource).Rows[i];

但是,这会返回不正确的数据,因为 docRows.CurrentRowIndex 为我提供了过滤后的 DataGrid 中的索引,并使用 ((DataTable)docRows.DataSource).Rows[i] 从未过滤的原始数据源中选择。

如何在新过滤的数据源中获得正确的行/行索引? (无需遍历整个表,我现在就是这样做的)

谢谢你

最佳答案

可以通过BindingContext和BindingManagerBase的Current属性获取到当前行。

// dgDocRow is DataGrid
BindingManagerBase bm = this.dgDocRow.BindingContext[this.dgDocRow.DataSource, this.dgDocRow.DataMember];
DataRow dr = ((DataRowView)bm.Current).Row;

关于c# - 获取筛选后的 DataGrid 中选定行的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27125494/

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