C# DataGridViewComboxColumn不使用自定义数据源呈现
使用此线程中的信息,我尝试设置并使用选项动态填充DataGridViewComboBoxColumn。我的调试器未显示任何错误,但组合框不会呈现C# DataGridViewComboxColumn不使用自定义数据源呈现,c#,combobox,datagridcomboboxcolumn,C#,Combobox,Datagridcomboboxcolumn,使用此线程中的信息,我尝试设置并使用选项动态填充DataGridViewComboBoxColumn。我的调试器未显示任何错误,但组合框不会呈现 //setup combobox List<combo_automation_option> combo = new List<combo_automation_option>(); combo.Add(new combo_automation_option { id = "0", value = "None" }); comb
//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);
我有一个公共结构,如下所示:
public struct combo_automation_option {
public string id;
public string value;
}
有什么建议吗?数据绑定在类/结构字段上不起作用,即使它们是公共的 您应该改用属性,例如:
public struct combo_automation_option {
public string id {get; set;}
public string value {get; set;}
}
此外,如果要在组合框中显示其他内容(例如值)而不是id,请同时设置DisplayMember
属性
顺便说一句,其他几点建议:
- 只有在真正必要时才应使用结构;改用类
- 您并没有遵循通常的c#命名约定:始终使用驼峰式大小写(无下划线),并且只有结构/类、方法和属性必须以大写字母开头
foreach(作业中的DataGridViewRow行\u datagrid.Rows)
并设置值do:row.Cells[yourComboColumnIndex].value=“0”代码>
public struct combo_automation_option {
public string id {get; set;}
public string value {get; set;}
}