簡體   English   中英

C#動態LINQ查詢

[英]c# dynamic LINQ query

在我的winform應用程序中,我將在datagridview中添加combobox列,並使用以下代碼選擇combobox項:

var entityModel= new AdminEntities();
DataGridViewComboBoxColumn cboIsNew = new DataGridViewComboBoxColumn();
var isNew = (from a in entityModel.TOWERs select a.ISNEW).Distinct().OrderBy(x => x);
cboIsNew.Items.AddRange(isNew.ToArray());
int i = dgvLoadTable.Columns["ISNEW"].Index;
dgvLoadTable.Columns.Insert(i, dgvCol);
dgvLoadTable.Columns[i].HeaderText = dgvLoadTable.Columns[i + 1].HeaderText;
dgvLoadTable.Columns[i + 1].Visible = false;

有沒有一種方法可以通過一個簡單的函數來實現,即僅傳遞表名和列名/索引? 另外,如果我這樣做:

dgvLoadTable.Columns.Insert(i, new DataGridViewComboBoxColumn());

然后如何將項目添加到此動態創建的組合框? 我試圖添加類似以下內容的項目,但是它不起作用:

 cboIsNew.Items.AddRange((from a in entityModel.TOWERs select a.ISNEW).Distinct().OrderBy(x => x))

任何幫助將不勝感激。

嘗試這個:

cboIsNew.Items.AddRange((from a in entityModel.TOWERs select a.ISNEW)
  .Distinct().Select( x => new DataGridViewComboBoxColumn() ).ToList());

您將需要使用x作為源查看具有特定值的DataGridViewComboBoxColumn,但是我布局的方式應該創建一個應該添加的對象列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM