DataGridViewComboBoxColumn 不使用自定义数据源呈现
使用此线程中的信息,我尝试设置并动态填充带有选项的 datagridviewcomboboxolumn 。我的调试器没有显示错误,但组合框不呈现。
//setup combobox
List<combo_automation_option> combo = new List<combo_automation_option>();
combo.Add(new combo_automation_option { id = "0", value = "None" });
combo.Add(new combo_automation_option { id = "*.0.5", value = "Once every 5 minutes" });
dgv_col_automation.HeaderText = "Automation";
dgv_col_automation.Name = "dgv_jobs_col_automation";
dgv_col_automation.FlatStyle = FlatStyle.Flat;
dgv_col_automation.DataSource = combo;
dgv_col_automation.ValueMember = "id";
dgv_col_automation.DataPropertyName = "value";
jobs_datagrid.Columns.Add(dgv_col_automation);
当我使用下面的设置来设置组合框时,它呈现得很好:
//setup combobox
dt_col_automation.HeaderText = "Automation";
dt_col_automation.Name = "dgv_jobs_col_automation";
dt_col_automation.Items.AddRange(
"Once every 5 minutes",
"Once every 10 minutes",
"Once every 15 minutes",
"Once every 30 minutes",
"Once every hour",
"Once every 2 hours",
"Once every 3 hours",
"Once every 4 hours",
"Once every 5 hours",
"Once every 6 hours",
"Once every 7 hours",
"Once every 8 hours",
"Once every 9 hours",
"Once every 10 hours",
"Once every 11 hours",
"Once every 12 hours",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
"22",
"23",
"24"
);
我有一个看起来像这样的公共结构:
public struct combo_automation_option {
public string id;
public string value;
}
有什么建议吗?
Using information from this thread I've attempted to setup and dynamically populate a datagridviewcomboboxolumn with options. My debugger shows no errors, but the combobox does not render.
//setup combobox
List<combo_automation_option> combo = new List<combo_automation_option>();
combo.Add(new combo_automation_option { id = "0", value = "None" });
combo.Add(new combo_automation_option { id = "*.0.5", value = "Once every 5 minutes" });
dgv_col_automation.HeaderText = "Automation";
dgv_col_automation.Name = "dgv_jobs_col_automation";
dgv_col_automation.FlatStyle = FlatStyle.Flat;
dgv_col_automation.DataSource = combo;
dgv_col_automation.ValueMember = "id";
dgv_col_automation.DataPropertyName = "value";
jobs_datagrid.Columns.Add(dgv_col_automation);
It rendered fine when I used the settings below to setup my combo box:
//setup combobox
dt_col_automation.HeaderText = "Automation";
dt_col_automation.Name = "dgv_jobs_col_automation";
dt_col_automation.Items.AddRange(
"Once every 5 minutes",
"Once every 10 minutes",
"Once every 15 minutes",
"Once every 30 minutes",
"Once every hour",
"Once every 2 hours",
"Once every 3 hours",
"Once every 4 hours",
"Once every 5 hours",
"Once every 6 hours",
"Once every 7 hours",
"Once every 8 hours",
"Once every 9 hours",
"Once every 10 hours",
"Once every 11 hours",
"Once every 12 hours",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
"22",
"23",
"24"
);
I've a public struct that looks like this:
public struct combo_automation_option {
public string id;
public string value;
}
Any advice?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
数据绑定不适用于类/结构字段,即使它们是公共的。
您应该使用属性,例如:
此外,如果您想显示其他内容(例如值)而不是组合框中的 id,还可以设置
DisplayMember
属性。顺便说一句,其他一些建议:
Data binding doesn't work on class/struct fields even if thery're public.
You should use properties instead e.g.:
Furthermore, if you want to show something else (e.g. the value) instead of the id in the combobox, set also the
DisplayMember
property.BTW, other few suggestions: