Как скрыть строку DataGridVew - PullRequest
       11

Как скрыть строку DataGridVew

0 голосов
/ 27 апреля 2020

В C# проекте WinForms я перебираю DataSridView DataGridView как DataTable и проверяю исходную базу данных и определяю, является ли значение в одном из столбцов допустимым. Если это является допустимым значением, я хочу его скрыть, поэтому я получаю только DGV, показывающий строки с недопустимыми значениями.

Вот псевдо-код того, что у меня есть.

private void btnValidate_Click(object sender, EventArgs e)
    {
    DataTable dt = ((DataTable)dgvMyDataGridView.DataSource);

    int intRowIndex;

    for (intRowIndex = 0; intRowIndex <= dt.Rows.Count - 1; intRowIndex++)
    {
        DataRow drValidationRow = dt.Rows[intRowIndex];

        string strNewValue = drValidationRow[5].ToString();
        // Get the current row's db record ID as a string for the db query
        int intCurrDgvRowId = int.Parse(dgvMyDataGridView[0, intRowIndex].Value.ToString());

        // Determine if we need to show or hide the DGV's row
        bool bNewValueIsValid = <db check for valid strNewValue>

        if (bNewValueIsValid)
        {
            /*
             *  Hide the DGV row corresponding to the DT row ID
             */
        }
    }
}

Я попробовал то, что мне кажется наиболее логичным:

dgvmyDataGridView.Rows[intRowIndex].Visible = false;

Но когда я запускаю это, я получаю эту ошибку:

System.InvalidOperationException: 'Row associated with the currency manager's position cannot be made invisible.'

Я не могу просто сделать что-то вроде drValidationRow.Visible = false, так как для этого нет свойства Visible, я думаю, потому что строка из DataTable, а не DGV.

Как мне сделать sh это?

1 Ответ

1 голос
/ 27 апреля 2020

вам не нужен счетчик. Вы можете просто обновить sh dgv, если Rows.Count = 0?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...