使用DropDownStyle = Dropdown Winforms ComboBox Databind

时间:2009-06-18 17:13:30

标签: .net winforms data-binding .net-3.5 combobox

Winforms / .Net 3.5

我正在使用一个组合框,并将dropdownstyle设置为下拉列表(允许用户输入数据)。

我遇到的问题是如何设置组合框,以便使用列表中的值以及用户输入数据时更新我的​​bindingsource。

例如,组合框可能包含以下值:

“红色”,“白色”,“蓝色”。但是用户应该能够输入“黑色”。

我尝试使用“Text”属性,但问题是我的组合框显示值包含额外信息(代码和描述)而不是Value(仅代码)。

我在向组合框添加绑定时尝试使用SelectedValue,但之后它只使用列表中的值进行更新,而不是在用户输入数据时更新。

MyComboBox.DataBindings.Add("SelectedValue", MyBindingSource, "MyProperty", True, DataSourceUpdateMode.OnValidation)

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。 我通过在DataBindings.Add方法中用“Text”替换参数“SelectedValue”来解决它。 MyComboBox.DataBindings.Add(“Text”,MyBindingSource,“MyProperty”,True,DataSourceUpdateMode.OnValidation)

答案 1 :(得分:0)

尝试更改ComboBox的DropDownStyle属性。不确定它是否会给你你想要的东西,但这是一个新的方向。

答案 2 :(得分:0)

在验证事件中,如果text.isNullOrEmpty()== fallse&& selectedItem == null或selectedIndex< 0

  1. 检查集合中是否已存在具有该名称的项目,并将selectedItem更改为该项目。
  2. 提示用户是否打算尝试创建新项目。
  3. 做任何你需要的东西来获取创建该项目的信息,无论是显示表单对话框还是什么都没有。
  4. 将新创建的实例插入到comboBox绑定的数据源中。
  5. 将comboBox上的selectedItem属性设置为新项。