gpt4 book ai didi

c# - 使 DataGridViewRow 不可见的更快方法

转载 作者:行者123 更新时间:2023-11-30 18:00:50 25 4
gpt4 key购买 nike

我正在使用以下代码将一堆 DataGridViewRow 元素设置为不可见。我使用的规则是检查关联数据源的 bool 标志。如果标志为真,将显示该行。否则,它将不可见。

以下代码有效;然而,这样做会花费相当多的时间:

CurrencyManager currencyManager = (CurrencyManager)BindingContext[dataGridView.DataSource];

currencyManager.SuspendBinding();

foreach (DataGridViewRow row in dataGridView.Rows)
{
if (!objectList.list[row.Index].Selected)
{
row.Visible = false;
}
}
currencyManager.ResumeBinding();

有没有人有更好的解决方案?我必须经历的对象列表越长,这个过程自然需要的时间就越长。我无法设置单元格范围,因为 bool 值可能不连续。

最佳答案

正如 PraVn 所说,您可以在使用数据 GridView 之前简单地进行过滤。如果您使用的是 DataSet、DataTable 或 DataView,只需执行以下操作:

DataSet ds = new DataSet();
ds.Tables[0].DefaultView.RowFilter = "YourBooleanColumn = 1";

DataView dv = new DataView();
dv.RowFilter = "YourBooleanColumn = 1";

DataTable dt = new DataTable();
dt.RowFilter.DefaultView.RowFilter = "YourBooleanColumn = 1";

或者,您可以在数据库端进行过滤(如果有的话?)。让我们知道您的数据源是什么,我会酌情更新。这是我能做的最好的!

关于c# - 使 DataGridViewRow 不可见的更快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9663278/

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