gpt4 book ai didi

c# - 绑定(bind) DataGridView 中的组合框

转载 作者:行者123 更新时间:2023-11-30 15:10:50 24 4
gpt4 key购买 nike

我有一个绑定(bind)到数据库表的 DataGridView 控件。我希望 gridview 中的其中一列是组合框类型。组合框应该包含一个硬编码字符串列表,它对于数据 GridView 中的所有行都是相同的。我的数据库表中的一个字段是这个硬编码字符串列表的索引。

我以编程方式向“DataGridViewComboBoxColumn”类型的 gridview 添加了一个新列,它成功地创建了其中包含组合框的列。但是,这并没有绑定(bind)到我的数据库表中的索引字段。

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

显然,就在更新数据适配器之前,我可以通过组合框的 SelectedIndex 以编程方式修复数据表中的隐藏列。只是想知道是否有更好的方法来做到这一点?

[编辑]
实际上,与其在更新数据适配器之前这样做,我可能最好使用组合框单元格更改事件来更新隐藏列。不确定我是否在这里回答我自己的问题,或者是否有更好的方法。它似乎确实有效,但只是感觉有点变通。[/编辑]

感谢您对此的任何帮助,
丹.

最佳答案

如果您需要将 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)";

关于c# - 绑定(bind) DataGridView 中的组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2936079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com