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 является правильным. Вы также можете сделать это в режиме конструктора:

  1. свойства ComboBox (F4) - > узел привязки данных - > дополнительно

  1. нажмите "SelectedValue" и измените режим обновления источника данных на "OnPropertyChanged" enter image description here