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