Data binding 数据绑定组合框在失去焦点时返回其上一个选定项
我在WinForm上有一个普通的组合框。我想用城市填充它,并将其数据绑定设置为我的业务对象CityID。对象是Office{ID,Name,CityID} 我像那样填充项目Data binding 数据绑定组合框在失去焦点时返回其上一个选定项,data-binding,combobox,Data Binding,Combobox,我在WinForm上有一个普通的组合框。我想用城市填充它,并将其数据绑定设置为我的业务对象CityID。对象是Office{ID,Name,CityID} 我像那样填充项目 public void LoadCityCombo(List<City> list) { CityComboBox.DisplayMember = "Name"; CityComboBox.ValueMember = "ID"; CityComboBox.DataSource = list
public void LoadCityCombo(List<City> list)
{
CityComboBox.DisplayMember = "Name";
CityComboBox.ValueMember = "ID";
CityComboBox.DataSource = list;
}
当我打开表单时,会选择正确的城市,但当我从组合中选择另一个城市并移动到其他控件(松散组合焦点)时,组合中会返回旧选择的城市
我搞砸了什么?问题出在这一排:
Binding b = new Binding("SelectedValue", office, "CityID");
CityComboBox.DataBindings.Add(b);
解决办法是
Binding b = new Binding("SelectedValue", office, "CityID", true);
CityComboBox.DataBindings.Add(b);
或
我不知道这是否是由我的本地化引起的,但在另一台计算机上,绑定工作时没有设置此属性。
奇怪的是,如果不设置此属性,就不会触发BindingCompleted事件,您可以在其中查看是否存在绑定错误。如果不查看代码,就很难判断其他事件处理程序是否可能被触发并“搞乱”事情。您好,没有任何其他事件处理程序。这是一个全新的组合框添加到表单中。你能发布一些确实适合你的代码吗?
Binding b = new Binding("SelectedValue", office, "CityID", true);
CityComboBox.DataBindings.Add(b);
Binding b = new Binding("SelectedValue", office, "CityID");
b.FormatingEnabled = true;
CityComboBox.DataBindings.Add(b);