我需要以编程方式填充DataGridView。数据库的列是固定的,Rows取决于列表的大小。实际上我有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);
}
但是上面的代码有时并不完美。还有其他方法吗?或者有任何改善上述建议的建议?
答案 0 :(得分:3)
我会避免直接使用DataGridView,我建议您使用某种类型的“模型”,然后将DGV绑定到。
例如,您可以使用与所需网格具有相同方案的DataTable,这样您只需操作模型。
我总是发现使用DataBinding并操纵模型比尝试直接操作DGV更好。
答案 1 :(得分:0)
什么是最适合您的?您可以创建一个DataTable并将其绑定到自动创建列的网格