如何解决如何使用数据源和使用DataGridViewComboBoxColumn的列创建DataGridView?
我有一个从DataSet派生的类,该类用作数据源。我的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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。