[英]Create a DataGridView, that has the second column of type DataGridViewComboBoxColumn with cell values of type ComboboxColorItem using my DataSource
[英]How to create a DataGridView with a DataSource and columns that use DataGridViewComboBoxColumn?
我有一个 class 派生自我用作数据源的数据集。 我的 DataGridView 有 8 列,其中 3 列是使用下拉组合框编辑的多个值选择。
如果我让数据源为 DataGridView 生成列,那么所有列类型都是 DataGridViewTextBoxColumn。 但是 DataGridView 填充了我的原始行值。
如果我将 AutoGenerateColumns 设置为 false 并将我自己的列类型添加到 DataGridView,我可以为需要它的 3 列添加 DataGridViewComboBoxColumn。 但是,DataSource 虽然包含行数据,但不会填充我的 DataGridView 的行。
显然我希望这两件事都发生。 需要从 DataSource 填充行,并且需要从 DataGridView 将列正确编辑为 DataGridViewComboBoxColumns。 为什么我不能两者兼得? 我究竟做错了什么。
请注意,这不是关于使用数据源填充 ComboBox 中的项目的问题。
code fragment
alarmDataSet = new AlarmDataSet(sAlarms);
gridView.AutoGenerateColumns = false;
gridView.DataSource = alarmDataSet;
gridView.DataMember = sAlarms;
another code fragment
cm = new DataGridViewComboBoxColumn();
cm.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
cm.HeaderText = ci.Name;
cm.Name = ci.DataName;
cm.MaxDropDownItems = 3;
cm.Items.Add("Once");
cm.Items.Add("Repeat");
cm.Items.Add("Off");
gridView.Columns.Add(cm);
谢谢
如果你设置
DataGridView.AutoGenerateColumns = false
然后,您需要告诉 DataGeridView DataGridView 的哪一列绑定到 DataSource 的哪一列(如果是列表,则为属性名称)
DataGridView.Column[0].DataPropertyName = "Column Name In Your DataSource That is bound to DataGridView Column 0"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.