ComboBox не обновляет привязки данных для выбранного элемента изменено (WinForms)
У меня есть ComboBox, привязанный к источнику данных, но он не будет обновлять привязки, пока элемент управления не потеряет фокус. Как я могу обновить привязки при изменении выбранных элементов? На снимке экрана ниже я хотел бы, чтобы ярлык немедленно обновился, чтобы отразить новый выбор.
Код:
public enum MyEnum
{
First,
Second
}
public class MyData
{
public String Name { get; set; }
public MyEnum MyEnum { get; set; }
}
Образец:
public SampleForm()
{
InitializeComponent ();
MyData data = new MyData () { Name = "Single Item" };
this.bindingSource1.DataSource = data;
this.comboBox1.DataSource = Enum.GetValues (typeof (MyEnum));
this.label2.DataBindings.Add ("Text", this.bindingSource1, "MyEnum", true, DataSourceUpdateMode.OnPropertyChanged);
this.comboBox1.DataBindings.Add (new System.Windows.Forms.Binding ("SelectedItem", this.bindingSource1, "MyEnum", true));
this.comboBox1.DataBindings.Add (new System.Windows.Forms.Binding ("SelectedValue", this.bindingSource1, "MyEnum", true));
}
2 ответов
прокомментируйте версию SelectedItem и измените привязку SelectedValue следующим образом, чтобы включить UpdateMode:
this.comboBox1.DataBindings.Add(new Binding(
"SelectedValue",
this.bindingSource1,
"MyEnum",
true,
DataSourceUpdateMode.OnPropertyChanged));
решение LarsTech является правильным. Вы также можете сделать это в режиме конструктора: