在组合框中输入的字符串格式不正确

Ehs*_*bar 2 c# parsing converter winforms

我有一个Drop Down ListDDL当索引更改时,我需要我的值。所以我这样做:

 private void CMBGroup_SelectedIndexChanged(object sender, EventArgs e)
        {
           int id=int.Parse(CMBGroup.SelectedValue.ToString());
           //do something with id
       }
Run Code Online (Sandbox Code Playgroud)

form load我获取我的数据:

        goodGroups=objGoodGroupRepositoy.GetAll().ToList();
        CMBGroup.DataSource = goodGroups;
        CMBGroup.ValueMember = "Id";
        CMBGroup.DisplayMember = "Name";
Run Code Online (Sandbox Code Playgroud)

我的数据库中有这样的数据:

id serial    name
1   121    g1
2   123    g2
Run Code Online (Sandbox Code Playgroud)

但是我在加载表单之前遇到了这个错误:

Input string was not in a correct format
Run Code Online (Sandbox Code Playgroud)

我在得到这个错误在这里indexchange的事件DDL

int id=int.Parse(CMBGroup.SelectedValue.ToString());
Run Code Online (Sandbox Code Playgroud)

该模型 :

public partial class GoodGroup
    {
        public GoodGroup()
        {
            this.Goods = new HashSet<Good>();
        }

        public int Id { get; set; }
        public string Serial { get; set; }
        public string Name { get; set; }

        public virtual ICollection<Good> Goods { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

Nic*_*coD 5

您应该在DataSource之前设置DisplayMember和ValueMember属性。

更改数据源时,或者在设置数据源后更改DisplayMember或ValueMember时,绑定基础结构将强制控件重新绑定

另一种方法是在修改数据源时退订/订阅事件。