簡體   English   中英

如何添加 IList<ItemStatusClass> 在 DataGridView 的現有列中?

[英]How to add a IList<ItemStatusClass> in an cxisting column of DataGridView?

DataGridView 檢索腳本是:

DataSet ds1 = new DataSet();
isSqlString =  "SELECT [Item] AS itemName,Status as itemStatus From Items;"
SqlDataAdapter da = new SqlDataAdapter(isSqlString, isConnStr);
da.Fill(ds1, "items");
datagridview1.DataSource = ds1.Tables["items"].DefaultView;

列表:

IList<ItemStatusClass> itemStatus = 
                    new List<ItemStatusClass>
                    {   
                         new ItemStatusClass { id = 0, name = "AAA" },
                         new ItemStatusClass { id = 1, name = "BBB" },
                         new ItemStatusClass { id = 2, name = "CCC" } 
                    };

我使用以下代碼添加了它:

DataGridViewComboBoxColumn statusCol = new DataGridViewComboBoxColumn();
statusCol.DataPropertyName = "itemStatus";
statusCol.Name = "Status";
statusCol.ReadOnly = false;
statusCol.DataSource = itemStatus;
statusCol.DisplayMember = "name";
statusCol.ValueMember = "id";
datagridview1.Columns.Add(statusCol);
datagridview1.Columns[2].DataPropertyName = "itemStatus";

我只需要將IList<ItemStatusClass>添加到 DataGridView 的現有列。

另一個列出現在 DataGridView 的最后一個,其值為 Existing Column。 但 Existing column 沒有變化,現有列的值保持不變。 項目代碼列在隱藏中。

在此處輸入圖片說明

如上圖所示,顯示了兩個Status列。 第一個狀態列來自 SQL,第二個狀態列是我以編程方式添加的。

我需要第二個狀態列必須顯示為第二個狀態列。 請讓我擺脫這種情況。

禁用 AutoGenerateColumns 參數

datagridview1.AutoGenerateColumns = false

然后添加所需的列。

編輯:在您的代碼中,在您添加的列之前,datagridview1.Columns 中有兩列。 它們是在您使用 AutoGenerateColumns = true 添加數據源時創建的。

在加載數據源之前檢查 AutoGenerateColumns 是否仍然為 false。

暫無
暫無

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

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