带有绑定数据的 datagridview 中的组合框
combobox inside a datagridview with bound data
我创建了一个绑定到 Class CTag 的 Datagridview。
在 CTAG 内部,我有 2 个成员想在数据网格视图中显示:名称、区域
列是自动创建的,因为 class CTag 作为数据源连接到 Datagridview。但我想限制用户在“区域”列中输入的内容。所以在那个地方我想要一个组合框。
我已经找到了如何在 datagridview 中添加一个带有选项列表的新组合框,但它以这种方式创建了一个额外的列。
private BindingList<string> listOfAreas = new BindingList<string>();
listOfAreas.Add("PE");
listOfAreas.Add("PA");
listOfAreas.Add("MK");
listOfAreas.Add("DB");
listOfAreas.Add("CT");
listOfAreas.Add("TM");
dgvTags.DataSource = listOfTags;
DataGridViewComboBoxColumn area = new DataGridViewComboBoxColumn();
area.Name = "DataArea";
area.DataPropertyName = "DataArea";
area.DataSource = listOfAreas;
dgvTags.Columns.Add(area);
我错过了什么才能让这个正确?
移动这一行:
dgvTags.DataSource = listOfTags;
在此之后:
dgvTags.Columns.Add(area);
解释:
当 AutoGenerateColumns 属性 为 true(默认)时,当您设置 DataSource 时,将为列表类型的每个 属性 创建列 如果没有属性.
的列
因此,如果在将列放入 DataSource 之前添加该列,则可以避免出现双列。
我创建了一个绑定到 Class CTag 的 Datagridview。 在 CTAG 内部,我有 2 个成员想在数据网格视图中显示:名称、区域 列是自动创建的,因为 class CTag 作为数据源连接到 Datagridview。但我想限制用户在“区域”列中输入的内容。所以在那个地方我想要一个组合框。 我已经找到了如何在 datagridview 中添加一个带有选项列表的新组合框,但它以这种方式创建了一个额外的列。
private BindingList<string> listOfAreas = new BindingList<string>();
listOfAreas.Add("PE");
listOfAreas.Add("PA");
listOfAreas.Add("MK");
listOfAreas.Add("DB");
listOfAreas.Add("CT");
listOfAreas.Add("TM");
dgvTags.DataSource = listOfTags;
DataGridViewComboBoxColumn area = new DataGridViewComboBoxColumn();
area.Name = "DataArea";
area.DataPropertyName = "DataArea";
area.DataSource = listOfAreas;
dgvTags.Columns.Add(area);
我错过了什么才能让这个正确?
移动这一行:
dgvTags.DataSource = listOfTags;
在此之后:
dgvTags.Columns.Add(area);
解释:
当 AutoGenerateColumns 属性 为 true(默认)时,当您设置 DataSource 时,将为列表类型的每个 属性 创建列 如果没有属性.
的列因此,如果在将列放入 DataSource 之前添加该列,则可以避免出现双列。