2016-11-11 32 views
0

我是C#的新手,但没有编程。我一直在玩VS,对这种语言变得更加熟悉,并且陷入了绑定到内存数据集的int数据表列的组合框中。绑定的组合框不匹配

我曾在一个的DataGridView,也没有问题,创造一个DataGridViewComboBoxColumn,并使用由Key:intDesc:string自定义类填充它的下拉列表。 ValueMember = KeyDisplayMember = Desc数据源保留为空,因为该列表直接构建到组合框中。从组合框中选择并保存更改在网格中正常工作。

然后我搬到了ComboBox。网格和ComboBox都有完全相同的BindingSource。所以是的,他们同时指向同一行。

我绑定组合框:

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

不填充组合框的下拉项目,我看到原始int值在组合框中显示出来。我使用网格更改了行,并且ComboBox值也发生了变化。所以这很好。

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

还有别的东西挂钩吗?因为我期待一些小事而感到沮丧。

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

*编辑:下拉列表实际上来自一个人口的BindingList <>的BindingList <>ComboBox.DataSource供应。

回答