将组合框的数据绑定设置为对象的属性int

时间:2016-08-28 15:28:02

标签: c# winforms data-binding combobox

我需要将一个comboBox ValueMember绑定到Object的属性int。

private void setBinds()
{
    comboBox.DataBindings.Add("SelectedValue", Employee, "FiscalDocType", true, DataSourceUpdateMode.OnPropertyChanged);
}

员工:

public class Employee
{
     public int Id { get; set; }
     public int FiscalDocType { get; set; }
     public string FiscalDoc {  get; set; }
}

DataSource集合:

 comboBox.DisplayMember = "DisplayMember";
 comboBox.ValueMember = "ValueMember";
 comboBox.DataSource = listOfCombo //Type: List<ComboModel>;

ComboModel:

public class ComboModel
{
    public int ValueMember { get; set; }
    public string DisplayMember { get; set; }

    public override string ToString()
    {
        return DisplayMember;
    }
}

当组合更改的值不将ValueMember保存到bind属性时。此外,comboBox不会失去焦点。

如果我尝试将SelectedValue转换为int,则返回转换错误类型。

int integer = (int)SelectedValue;
int integer2 = Convert.ToInt32(SelectedValue);
int integer3 = int.Parse(SelectedValue.ToString());

任何选项都有效。

可以帮帮我吗?

0 个答案:

没有答案