簡體   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