我想使用实体框架在datagridview中编辑列标题.我使用表单设计添加了列和设计名称,但当我在代码中添加数据源时,包含数据的列显示在左侧,而我使用表单设计创建的列显示为空白.如何使用列设计名称填充数据源中的数据?
我试过很多方法,比如
colummn[0].headercell.value = "column title"
但我不想这样.我想用栏目设计的名字.
我想使用实体框架在datagridview中编辑列标题.我使用表单设计添加了列和设计名称,但当我在代码中添加数据源时,包含数据的列显示在左侧,而我使用表单设计创建的列显示为空白.如何使用列设计名称填充数据源中的数据?
我试过很多方法,比如
colummn[0].headercell.value = "column title"
但我不想这样.我想用栏目设计的名字.
根据我的测试,我复制了你的问题.我建议你可以放弃datagridview1.DataSource=context.students.ToList()
美元.
如果您只需要显示在WinForm中编辑的列,我建议您可以使用反射和循环来实现.
以下是您可以参考的代码示例.
private void Form1_Load(object sender, EventArgs e)
{
Model1 model = new Model1();//DbContext
foreach (var item in model.Students)
{
dataGridView1.Rows.Add();
}
var columns = dataGridView1.Columns;
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
var names = model.Students.ToList().Select(x => x.GetType().GetProperty(columns[i].Name).GetValue(x)).ToList();
for (int j = 0; j < names.Count(); j++)
{
dataGridView1.Rows[j].Cells[dataGridView1.Columns[i].Name].Value = names[j].ToString();
}
}
}