繁体   English   中英

Linq to DataGridView,AutoGenerateColumns = False显示空白行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM