【问题标题】:Bound ComboBox not matching绑定的组合框不匹配
【发布时间】:2017-03-26 03:53:05
【问题描述】:

我是 C# 新手,但不是编程新手。我一直在玩 VS,对这种语言变得更熟悉了,结果卡在了一个绑定到内存数据集的 int 数据表列的组合框上。

我在 DataGridView 上工作,创建 DataGridViewComboBoxColumn 并使用由 Key:intDesc:string 组成的自定义类填充其下拉列表没有问题。 ValueMember = KeyDisplayMember = DescDataSource 保留为 null,因为该列表直接内置到 ComboBox 中。从组合框中选择并保存更改在网格中可以正常工作。

然后我转到一个组合框。网格和 ComboBox 都具有完全相同的 BindingSource。所以是的,它们同时指向同一行。

我将 ComboBox 绑定到:

cbCtrl.DataBindings.Add( "Text", myBindingSource, ColDBName );

没有填充 ComboBox 的下拉项,我看到原始 int 值显示在 ComboBox 中。我使用网格更改行,并且 ComboBox 值也更改。所以很好。

然后我填充 ComboBox 中项目的下拉列表(与绑定到同一列的网格列相同),这很麻烦。原始 int 值(例如 19)与 ComboBox 下拉列表中的正确“Key”项不匹配。我试过 DropDownStyle = DropDownDropDownList 但都没有运气。我已经找了好几个小时试图找到解决办法。没有与 ComboBox 挂钩的事件。我希望将原始值自动连接到组合框下拉列表中匹配的“键”项。

还有什么可以连接的吗?令人沮丧,因为我期待一些小事。

任何帮助将不胜感激。谢谢。

*编辑:下拉列表实际上来自一个填充的 BindingList 并且 BindingList 作为 ComboBox.DataSource 提供.

【问题讨论】:

    标签: c#


    【解决方案1】:

    我终于偶然发现了答案:

    cbCtrl.DataBindings.Add("SelectedValue", myBindingSource, ColDBName);

    这就是我所需要的。我从一篇很棒的文章中得到它 http://www.codeproject.com/Articles/24656/A-Detailed-Data-Binding-Tutorial?msg=5325959#xx5325959xx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多