Как заполнить DataGridView программно - PullRequest
2 голосов
/ 02 августа 2011

Мне нужно заполнить DataGridView программно.Столбцы базы данных являются фиксированными, а количество строк зависит от размера списка.На самом деле у меня есть List<MyCustomClass>, и мне нужно заполнить данные этим списком.

В настоящее время я делаю это:

public Constructor()
{
    InitializeComponent();
    dataGridViewFiles.AutoGenerateColumns = false;
    dataGridViewFiles.ColumnCount = 3;
    dataGridViewFiles.Columns[0].Name = "File Name";
    dataGridViewFiles.Columns[1].Name = "Total Documents";
    dataGridViewFiles.Columns[2].Name = "Total Pages";
}

Public LoadDGV()
{
    for (int i = 0; i < nTotalInputFiles; i++)
    {//add code here for adding rows to dataGridviewFiles
        DataGridViewRow tempRow = new DataGridViewRow();

        DataGridViewCell cellFileName = new DataGridViewTextBoxCell();
        cellFileName.Value = selectedProject.InputFiles[i].FileName;
        tempRow.Cells.Add(cellFileName);

        DataGridViewCell cellDocCount = new DataGridViewTextBoxCell();
        cellDocCount.Value = selectedProject.InputFiles[i].DocCount.ToString();
        tempRow.Cells.Add(cellDocCount);

        DataGridViewCell cellPageCount = new DataGridViewTextBoxCell();
        cellPageCount.Value = selectedProject.InputFiles[i].PageCount.ToString();
        tempRow.Cells.Add(cellPageCount);

        tempRow.Tag = selectedProject.InputFiles[i].Id;
        dataGridViewFiles.Rows.Add(tempRow);
    }

Но приведенный выше код некоторое время не совершенен.Так есть ли другой способ?Или есть предложения по улучшению выше одного?

Ответы [ 2 ]

3 голосов
/ 02 августа 2011

Я бы не стал работать с DataGridView напрямую, и я предлагаю вам использовать какую-то "модель", с которой вы затем можете связать DGV.

Например, вы можете использовать DataTable с тем жесхема в качестве желаемой сетки, и таким образом вы только манипулируете моделью.

Я всегда считал, что лучше использовать DataBinding и манипулировать моделью, чем пытаться манипулировать DGV напрямую.

0 голосов
/ 02 августа 2011

Что идеально для вас? Вы можете создать DataTable и привязать его к вашей сетке, которая автоматически создает ваши столбцы

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