简体   繁体   中英

How to expose combobox Databindings on a usercontrol

I have a combobox on a usercontrol . I can expose the datasource however I cant expose the actual bindings.

If you add a normal combobox to a form and go to the databindings property you can choose selected value, text etc.

After this is chosen the designer automatically creates a

combobox.databindings.add("SelectedValue", datasource, columname, true));

How can I expose a combobox on a user control so that it has the above behavior

It's probably not considered best practice to expose your controls like this since after all, part of the point of using a UserControl is to hide the details of the child controls.

Try exposing the control on the UserControl as a property:

public partial class UserControl1 : UserControl {
  public UserControl1() {
    InitializeComponent();
  }

  [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
  public ComboBox ComboBox {
    get {
      return this.comboBox1;
    }
  }
}

If you are only interested in the control's DataBindings, then try to just expose that information:

public partial class UserControl1 : UserControl {
  public UserControl1() {
    InitializeComponent();
  }

  [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
  public ControlBindingsCollection ComboDataBindings {
    get {
      return this.comboBox1.DataBindings;
    }
  }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM