【发布时间】:2021-04-14 20:25:32
【问题描述】:
例如,
我有这个绑定到数据表的数据网格视图:
| A | B | C |
|---|---|---|
| 1 | 4 | 7 |
| 2 | 5 | 8 |
| 3 | 6 | 9 |
而 B 是我要检查其值的列,例如我保存的 int 值为 5。代码应检查 B 列中是否有值 5,如果为真,则所有具有值的行5 可见性设置为 true,所有其他行的可见性设置为 false。
现在,我已经尝试过这个小代码(虽然它检查所有单元格但不是按特定列):
foreach (DataGridViewRow row in dataGridView1.Rows)
{
for (int i = 0; i < row.Cells.Count; i++)
{
int rowIndex = row.Index;
if (row.Cells[i].Value.ToString().Equals("16"))
{
CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[dataGridView1.DataSource];
currencyManager1.SuspendBinding();
dataGridView1.Rows[rowIndex].Visible = true;
currencyManager1.ResumeBinding();
}
else
{
CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[dataGridView1.DataSource];
currencyManager1.SuspendBinding();
dataGridView1.Rows[rowIndex].Visible = false;
currencyManager1.ResumeBinding();
}
}
}
现在关于这个 CurrencyManager,当我试图隐藏没有它的行时,它只是让我出错,但现在所有行的可见性都设置为 false。问题是我不明白在哪里看以及如何修复它,即使代码检查单元格,代码中的值“16”应该在 datagridview 中显示一些行,但它没有。
【问题讨论】:
标签: c# algorithm datatable datagridview visibility