example español databindings databinding data c# .net winforms data-binding collections

español - databindings c#



Pregunta vinculante de Winforms (1)

Reemplace List<String> con BindingList<String> .

La clase BindingList se puede utilizar como una clase base para crear un mecanismo de enlace de datos bidireccional. BindingList proporciona una implementación concreta y genérica de la interfaz IBindingList.

List<T> clase List<T> no proporciona ninguna notificación sobre los cambios en la recopilación. Por lo tanto, no hay forma de que ListBox sepa que se agrega un nuevo elemento. Sin embargo, si utiliza una colección que implementa la interfaz IBindingList , ListBox se suscribe al evento ListChanged . Así es como sabe cuándo refrescarse.

Soy relativamente nuevo en el enlace en formas ganadoras. Para aprender el tema, configuro la siguiente aplicación de prueba. Un winform básico con un ListBox y un Button .

public partial class Form1 : Form { public List<String> stringList = new List<String>(); public Form1() { InitializeComponent(); stringList.Add("First"); listBox1.DataSource = stringList; } private void button1_Click(object sender, EventArgs e) { stringList.Add("Second"); } }

La cadena "Primero" se muestra en listBox1 al iniciar la aplicación. Sin embargo, cuando stringList el botón que agrega una nueva cadena a la lista de stringList el nuevo elemento no se muestra en listBox1 . ¿Alguien podría ayudarme a entender los conceptos básicos del enlace de datos de colección?