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