C# Динамически добавить сбой DataGridViewRow

У меня есть программа, которая будет добавлять строки динамически в определенных условиях, я попытался реализовать функцию следующим образом:

if (student.UUID == AppliedStudent)
{
    using (DataGridViewRow row = new DataGridViewRow())
    {
        row.SetValues(new object[] { lesson.Name, Course.Course_Name, lesson.Level, lesson.Time, Teacher.C_Name, lesson.Price, Classroom.Classroom_Name });
        row.DefaultCellStyle.BackColor = Color.LightGreen;
        row.DefaultCellStyle.SelectionBackColor = Color.SkyBlue;
        dataGridView1.Rows.Add(row);
    }
}

С помощью этого кода он может действительно добавлять строки, однако они все пусты, во всех этих строках нет данных. (Было подтверждено, что lesson, course а также Teacher не null.) Кто-нибудь может помочь? Спасибо!

2 ответа

Решение

Я наконец-то понял это, я заменил row.SetValues в row.CreateCells:

if (student.UUID == AppliedStudent)
{
    DataGridViewRow row = new DataGridViewRow();
    row.CreateCells(dataGridView1, lesson.Name, Course.Course_Name, lesson.Level, lesson.Time, Teacher.C_Name, lesson.Price, Classroom.Classroom_Name);
    row.DefaultCellStyle.BackColor = Color.LightGreen;
    row.DefaultCellStyle.SelectionBackColor = Color.SkyBlue;
    dataGridView1.Rows.Add(row);
}

С этим кодом это будет хорошо работать. Спасибо всем за попытку помочь!

Вы должны оставить usingчасть. После этого rowОбъект будет расположен:

if (student.UUID == AppliedStudent)
{
    DataGridViewRow row = new DataGridViewRow();
    row.SetValues(new object[] { lesson.Name, Course.Course_Name, lesson.Level, lesson.Time, Teacher.C_Name, lesson.Price, Classroom.Classroom_Name });
    row.DefaultCellStyle.BackColor = Color.LightGreen;
    row.DefaultCellStyle.SelectionBackColor = Color.SkyBlue;
    dataGridView1.Rows.Add(row);
}
Другие вопросы по тегам