如何将ComboBox的选定文本值绑定到对象的属性

时间:2017-11-15 03:54:43

标签: c# winforms combobox binding

我有一个组合框设置为DropDownStyle=DropDownList(意味着用户无法键入任何内容,只需从下拉列表中选择)。组合包含状态列表。

我正在尝试将所选文本值绑定到_model.StateBar,但我的代码似乎没有更新对象的属性。

我已经尝试了以下两种方法:

cboStates.DataBindings.Add("Text", _model, "StateBar")
cboStates.DataBindings.Add("SelectedItem", _model, "StateBar")
cboStates.DataBindings.Add("SelectedValue", _model, "StateBar")

我只需要以一种方式绑定它:来自控件的更新需要最终在对象上。

1 个答案:

答案 0 :(得分:0)

绑定到ComboBox.SelectedValue应该有效,但仅限于通过ComboBox.DataSource添加项目的情况。

public class Model
{
    public string StateBar { get; set; }
}

 // In the form

var states = new List<string> { "Alabama", "California" };

combobox.DataSource = states;
combobox.DataBindings.Add("SelectedValue", _model, "StateBar", true, DataSourceUpdateMode.OnPropertyChanged);

绑定到SelectedItem应该适用于所有情况。