首页 文章

Combobox绑定DataGridView

提问于
浏览
3

我有一个绑定到数据库表的DataGridView控件 . 我希望gridview中的一个列是组合框类型 . 组合框应包含硬编码字符串列表,对于datagridview中的所有行都是相同的 . 我的数据库表中的一个字段是此硬编码字符串列表的索引 .

我以编程方式在“DataGridViewComboBoxColumn”类型的gridview中添加了一个新列,该列成功创建了包含组合框的列 . 但是,那不会绑定到我的数据库表中的索引字段 .

我的数据库表中的索引字段实际上是通过DataAdapter :: Fill方法自动绑定到列 . 我已将此列设置为隐藏,因此它对用户隐藏 .

显然,在更新dataadapter之前,我可以使用我的组合框的SelectedIndex以编程方式修复我的数据表中的隐藏列 . 只是想知道是否有更好的方法吗?

[编辑]
实际上,而不是在更新数据适配器之前这样做,我在这里回答我自己的问题,或者是否有更好的方法来做到这一点 . 它似乎确实有效,但只是感觉有点变通 . [/编辑]

谢谢你对此有任何帮助,
担 .

1 回答

  • 5

    如果您需要 ComboBoxSelectedValue 是索引而不是字符串,请使用自定义对象列表填充 ComboBox ,而不是字符串列表:

    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)";
    

相关问题