c# – ComboBox没有更新所选项目上的DataBindings更改(WinForms)

前端之家收集整理的这篇文章主要介绍了c# – ComboBox没有更新所选项目上的DataBindings更改(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",true));
  this.comboBox1.DataBindings.Add (new System.Windows.Forms.Binding ("SelectedValue",true));
}

解决方法

注释掉SelectedItem版本,并像这样修改SelectedValue绑定以包含UpdateMode:
this.comboBox1.DataBindings.Add(new Binding(
                                      "SelectedValue",DataSourceUpdateMode.OnPropertyChanged));

猜你在找的C#相关文章