Vinculando Listbox a List

¿Cuál es la forma más simple de vincular un Listbox a una Lista de objetos?

Está buscando la DataSource property :

 List someList = ...; myListBox.DataSource = someList; 

También debe establecer la propiedad DisplayMember en el nombre de una propiedad en el objeto que desea que se muestre en el listbox. Si no lo hace, llamará a ToString() .

Fingiendo que está mostrando una lista de objetos de clientes con propiedades “customerName” y “customerId”:

 listBox.DataSource = customerListObject; listBox.DataTextField = "customerName"; listBox.DataValueField = "customerId"; listBox.DataBind(); 

Editar: Sé que esto funciona en asp.net: si estás haciendo una aplicación de winforms, debería ser bastante similar (espero …)

Enlazando un control System.Windows.Forms.Listbox a una lista de objetos (aquí de tipo dynamic)

 List dynList = new List() { new {Id = 1, Name = "Elevator", Company="Vertical Pop" }, new {Id = 2, Name = "Stairs", Company="Fitness" } }; listBox.DataSource = dynList; listBox.DisplayMember = "Name"; listBox.ValueMember = "Id"; 

Por supuesto, esto no te proporcionará nada realmente significativo a menos que los objetos hayan sobrescrito ToString() (o si no estás trabajando con una lista genérica de objetos y puedes vincularlos a campos específicos):

 List objList = new List(); // Fill the list someListBox.DataSource = objList; 

Hay dos rutas nain aquí:

1: listBox1.DataSource = yourList;

Realice cualquier manipulación (Agregar / Eliminar) a su Lista y Volver a vincular.
Establezca DisplayMember y valueMember para controlar lo que se muestra.

2: lsitBox1.Items.AddRange(yourList.ToArray());

(o use un for-loop para hacer Items.Add(...) )

Puede controlar la visualización sobrecargando ToString () de los objetos de la lista o implementando el evento listBox1.Format.

 ListBox1.DataSource = CreateDataSource(); ListBox1.DataTextField = "FieldProperty"; ListBox1.DataValueField = "ValueProperty"; 

No lo he visto aquí, así que lo publico porque para mí es la mejor manera en winforms:

  List objList = new List(); listBox.DataSource = objList ; listBox.Refresh(); listBox.Update();