[英]Linq to DataGridView, AutoGenerateColumns = False displays blank rows
我的DGV通过设计器对列进行了预格式化。 使用SQL,我可以将SqlDataReader
结果加载到DataTable
然后简单地遍历各列以在那里设置DataPropertyName
属性。
我现在正在迁移到LINQ; 使用以下命令将AutoGenerateColumns
设置为False
:
Dim result = From a In db.states
Select a
DataGridView1.DataSource = result
...似乎仅显示空白网格(同时保留列)。 救命? 我希望尽可能在设计器中完成网格列的格式化。 谢谢。
UPDATE
似乎一一设置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
似乎您仍然需要像下面这样将其转换为列表:
Dim result = From a In db.states
Select a
DataGridView1.DataSource = result.ToList() 'converts to list
尝试添加BindingSource:
Dim result = From a In db.states
Select a
Dim bs = New BindingSource()
bs.DataSource = result
DataGridView1.DataSource = bs
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.