Dan*_*Dan 3 .net c# datagridview winforms
我有一个绑定到数据库表的DataGridView控件.我希望gridview中的一个列是组合框类型.组合框应包含硬编码字符串列表,对于datagridview中的所有行都是相同的.我的数据库表中的一个字段是此硬编码字符串列表的索引.
我以编程方式在"DataGridViewComboBoxColumn"类型的gridview中添加了一个新列,该列成功创建了包含组合框的列.但是,那不会绑定到我的数据库表中的索引字段.
我的数据库表中的索引字段实际上是通过DataAdapter :: Fill方法自动绑定到列.我已将此列设置为隐藏,因此它对用户隐藏.
显然,在更新dataadapter之前,我可以使用我的组合框的SelectedIndex以编程方式修复我的数据表中的隐藏列.只是想知道是否有更好的方法吗?
[edit]
实际上,而不是在更新dataadapter之前这样做,我可能最好使用组合框单元格更改事件来更新隐藏列.不确定我是否在这里回答我自己的问题,或者是否有更好的方法来做到这一点.它似乎确实有效,但只是感觉有点变通.[/编辑]
谢谢你对此有任何帮助,
Dan.
如果你需要SelectedValue的ComboBox是一个指标,而不是一个字符串,填补了ComboBox自定义对象的列表Rathen市的不是字符串列表:
dgvComboColumn.DataSource = new []
{
new { Index = 1, Text = "Foo" },
new { Index = 2, Text = "Bar" },
new { Index = 3, Text = "Baz" }
};
dgvComboColumn.DisplayMember = "Text";
dgvComboColumn.ValueMember = "Index";
dgvComboColumn.DataPropertyName = "(the DB column that stores the index)";
Run Code Online (Sandbox Code Playgroud)