Рейтинг:
1
Wendelius
В общем случае вы можете установить строку как невидимую, установив свойству Visible значение true. Однако, вам может потребоваться, чтобы приостановить привязки при задании собственность. Рассмотрим следующее, замените myDataTable
с фактическим объектом, который вы используете в качестве источника данных.
BindingContext[myDataTable].SuspendBinding();
foreach (DataGridViewRow row in this.productionDGV.Rows) {
if (row.Cells[4].Value.ToString() != Access.Text) {
row.Visible = false;
}
}
BindingContext[myDataTable].ResumeBinding();
Member 13765884
Спасибо. Я написал это как ...
Восстановления команда bindingcontext[productionBindingSource].Суспендирование();
по каждому элементу (ячейки datagridviewrow Row в этом.productionDGV.Строк)
{
if (row.Cells[4].Value.Метод toString() != Доступа.Текст)
{
подряд.Видна = ложь;
}
}
Восстановления команда bindingcontext[productionBindingSource].ResumeBinding();
Но теперь сетка выходит пустой. поскольку отладчик не выдает ошибку - не могли бы вы помочь, пожалуйста?
Wendelius
Теперь вы сравниваете ячейку 0 (= первый столбец), это правильная ячейка?
Member 13765884
Нет, это не правильно. Я пытался попробовать разные вещи, чтобы увидеть, может ли ошибка быть чем-то другим. Это все еще на самом деле клетка 4, которую я пытаюсь сравнить
Wendelius
Итак, если вы используете ячейки[4], которые являются 5-м столбцом, работает ли он так, как ожидалось?
Member 13765884
нет, это не так. Я перепробовал все ряды.
Wendelius
Ладно, поскольку у меня нет ни программы, ни данных, трудно сказать, что именно идет не так.
Попробуйте поместить точку останова на линию сравнения и, когда точка останова будет достигнута, проверьте, почему сравнение не работает. Например, есть ли дополнительные пробелы в значении ячейки или метки или, возможно, что-то еще, что делает строки другими.