propiedades llenar item elementos ejemplos agregar c# winforms data-binding combobox

c# - llenar - cómo vincular una lista a un combobox?(Winforms)



llenar combobox c# (6)

Como se refiere a un cuadro combinado, supongo que no desea utilizar el enlace de datos bidireccional (si es así, consulte el uso de una lista BindingList )

public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country(string _name) { Cities = new List<City>(); Name = _name; } }



List<Country> countries = new List<Country> { new Country("UK"), new Country("Australia"), new Country("France") }; bindingSource1.DataSource = countries; comboBox1.DataSource = bindingSource1.DataSource; comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name";

Quiero conectar un origen de enlace a una lista de objetos de clase y, a continuación, valor de objetos a un cuadro combinado. ¿Alguien puede sugerir cómo hacerlo?

public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country() { Cities = new List<City>(); } }

es mi clase y quiero vincular su campo de nombre a una fuente de enlace que luego podría asociarse con un cuadro combinado


Para obtener un resumen, hay 2 formas de usar un ComboBox / ListBox

1) Agregue objetos de país a la propiedad de elementos y recupere un país como elemento seleccionado. Para usar esto, debe anular el ToString del país.

2) Utilice DataBinding, configure DataSource en un IList (List <>) y use DisplayMember, ValueMember y SelectedValue

Para 2) primero necesitará una lista de países

// not tested, schematic: List<Country> countries = ...; ...; // fill comboBox1.DataSource = countries; comboBox1.DisplayMember="Name"; comboBox1.ValueMember="Cities";

Y luego en SelectionChanged,

if (comboBox1.Selecteditem != null) { comboBox2.DataSource=comboBox1.SelectedValue; }


Pruebe algo como esto:

yourControl.DataSource = countryInstance.Cities;

Y si usa WebForms, deberá agregar esta línea:

yourControl.DataBind();


Si está utilizando una ToolStripComboBox, no hay una DataSource expuesta (.NET 4.0):

List<string> someList = new List<string>(); someList.Add("value"); someList.Add("value"); someList.Add("value"); toolStripComboBox1.Items.AddRange(someList.ToArray());


public MainWindow(){ List<person> personList = new List<person>(); personList.Add(new person { name = "rob", age = 32 } ); personList.Add(new person { name = "annie", age = 24 } ); personList.Add(new person { name = "paul", age = 19 } ); comboBox1.DataSource = personList; comboBox1.DisplayMember = "name"; comboBox1.SelectionChanged += new SelectionChangedEventHandler(comboBox1_SelectionChanged); } void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e) { person selectedPerson = comboBox1.SelectedItem as person; messageBox.Show(selectedPerson.name, "caption goes here"); }

auge.


public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country() { Cities = new List<City>(); } } public class City { public string Name { get; set; } } List<Country> Countries = new List<Country> { new Country { Name = "Germany", Cities = { new City {Name = "Berlin"}, new City {Name = "Hamburg"} } }, new Country { Name = "England", Cities = { new City {Name = "London"}, new City {Name = "Birmingham"} } } }; bindingSource1.DataSource = Countries; member_CountryComboBox.DataSource = bindingSource1.DataSource; member_CountryComboBox.DisplayMember = "Name"; member_CountryComboBox.ValueMember = "Name";

Este es el código que estoy usando ahora