C# 数据绑定组合框有时返回的值不是作为displaymember选择的值

C# 数据绑定组合框有时返回的值不是作为displaymember选择的值,c#,data-binding,combobox,C#,Data Binding,Combobox,这是所有与combox相关的代码 string SelectedDealer = Dealers.SelectedValue.ToString(); this.Dealers.DataSource = this.dealersBindingSource; this.Dealers.DisplayMember = "DealerName"; this.Dealers.ValueMember = "DealerName"; “经销商”表只有两列。有时(一次或两次/应用程序运行)会发生 返回其他数据

这是所有与combox相关的代码

string SelectedDealer = Dealers.SelectedValue.ToString();
this.Dealers.DataSource = this.dealersBindingSource;
this.Dealers.DisplayMember = "DealerName";
this.Dealers.ValueMember = "DealerName";
“经销商”表只有两列。有时(一次或两次/应用程序运行)会发生

返回其他数据成员的值,例如经销商Id;对,这很奇怪


任何帮助都将不胜感激。

尝试更改行的顺序,谁知道,这可能会有帮助:)如果先前未设置ValueMember,则在设置其数据源后,Combobox可能会将默认值设置为ValueMember

this.Dealers.DisplayMember = "DealerName";
this.Dealers.ValueMember = "DealerName";
this.Dealers.DataSource = this.dealersBindingSource;
string SelectedDealer = Dealers.SelectedValue.ToString();

还要检查您的combobox中是否确实选择了某些内容:combobox的SelectedIndex不应为-1(SelectedValue可能是未指定的,尽管它会引发NullPointerException)

代码基本上是visual studio生成的,并且顺序良好,最后是SelectedDealer字符串,不过感谢您的关注:)
this.Dealers.DisplayMember = "DealerName";
this.Dealers.ValueMember = "DealerName";
this.Dealers.DataSource = this.dealersBindingSource;
string SelectedDealer = Dealers.SelectedValue.ToString();