【发布时间】:2016-11-16 07:23:33
【问题描述】:
我的 DGV 具有通过设计器预先格式化的列。使用 SQL,我可以将 SqlDataReader 结果加载到 DataTable 并简单地遍历列以在其中设置 DataPropertyName 属性。
我现在正在迁移到 LINQ;将AutoGenerateColumns 设置为False:
Dim result = From a In db.states
Select a
DataGridView1.DataSource = result
...似乎只显示一个空白网格(同时保留列)。帮助?我希望尽可能在设计器处完成网格列的格式化。谢谢。
更新
一一设置DataPropertyName似乎有效:
col1.DataPropertyName = "id"
col2.DataPropertyName = "name"
有没有办法将其转换为例程,可能带有循环,所以我不必手动设置所有内容?有点像这样(DataTable):
For i = 0 To dt.Columns.Count - 1 : List.Columns(i).DataPropertyName = dt.Columns(i).ColumnName : Next
【问题讨论】:
-
.ToList()必须工作。DataPropertyName列的名称是否与您的 states 集合中的属性名称相同? -
嗨法比奥,谢谢,请看我的编辑! :)
-
如果您在设计器中创建了列 - 那么您也可以在设计器中设置它们。如果你想要动态然后设置
AutoGenerateColumns = true
标签: c# vb.net linq datagridview