Search code examples
c#winformsdata-bindingbinding

Binding a generic List<string> to a ComboBox


I have a ComboBox and I want to bind a generic List to it. Can anyone see why the code below won't work? The binding source has data in it, but it won't fill the ComboBox data source.

FillCbxProject(DownloadData Down)
{
  BindingSource bindingSource = new BindingSource();
  bindingSource.DataSource = Down.ProjectList;
  cbxProjectd.DataSource = bindingSource;
}

On a side note: Is it bad to pass around an instance of a class?

Thanks!


Solution

  • You need to call the Bind method:

    cbxProjectd.DataBind();
    

    If this is for winforms then you need to make sure what you have is being called, the following works:

    BindingSource bs = new BindingSource();
    bs.DataSource = new List<string> { "test1", "test2" };
    comboBox1.DataSource = bs;
    

    Although you can set the ComboBox's DataSource directly with the list.