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