【发布时间】:2017-03-26 03:53:05
【问题描述】:
我是 C# 新手,但不是编程新手。我一直在玩 VS,对这种语言变得更熟悉了,结果卡在了一个绑定到内存数据集的 int 数据表列的组合框上。
我在 DataGridView 上工作,创建 DataGridViewComboBoxColumn 并使用由 Key:int 和 Desc:string 组成的自定义类填充其下拉列表没有问题。 ValueMember = Key,DisplayMember = Desc。 DataSource 保留为 null,因为该列表直接内置到 ComboBox 中。从组合框中选择并保存更改在网格中可以正常工作。
然后我转到一个组合框。网格和 ComboBox 都具有完全相同的 BindingSource。所以是的,它们同时指向同一行。
我将 ComboBox 绑定到:
cbCtrl.DataBindings.Add( "Text", myBindingSource, ColDBName );
没有填充 ComboBox 的下拉项,我看到原始 int 值显示在 ComboBox 中。我使用网格更改行,并且 ComboBox 值也更改。所以很好。
然后我填充 ComboBox 中项目的下拉列表(与绑定到同一列的网格列相同),这很麻烦。原始 int 值(例如 19)与 ComboBox 下拉列表中的正确“Key”项不匹配。我试过 DropDownStyle = DropDown 和 DropDownList 但都没有运气。我已经找了好几个小时试图找到解决办法。没有与 ComboBox 挂钩的事件。我希望将原始值自动连接到组合框下拉列表中匹配的“键”项。
还有什么可以连接的吗?令人沮丧,因为我期待一些小事。
任何帮助将不胜感激。谢谢。
*编辑:下拉列表实际上来自一个填充的 BindingList 并且 BindingList 作为 ComboBox.DataSource 提供.
【问题讨论】:
标签: c#