Il databinding nel .NET Framework e’ di una grande utilita’ senza dubbio. Qui una panoramica su come utilizzarlo nelle proprie applicazioni.
Un problema da affrontare una volta cambiati i dati nell’oggetto con le informazioni (list, collection, datatable ecc), e’ quello di aggiornare il controllo a cui esso e’ collegato. Ci sono varie strade per farlo, ma quella che preferisco usare passa per l’uso del CurrencyManager.
Segue un breve esempio:
public class CListElement
{
public long ID;
public string Description;
public CListElement(long newID, string newDesc)
{
ID = newID;
Description = newDesc;
}
}
[...]
//crea il databinding
List<CListItem> _lstItem;
_lstItems = new List<CListElement>();
_lstItems.Add(new CListElement(10, "Prova 1"));
_lstItems.Add(new CListElement(20, "Prova 2"));
listBox1.DataSource = _lstItems;
listBox1.ValueMember = "ID";
listBox1.DisplayMember = "Description";
[...]
//aggiorna il databinding
_lstItems.Add(new CListElement(30, "Prova 3"));
CurrencyManager cm = (CurrencyManager)this.BindingContext[listBox1.DataSource];
cm.Refresh();
Questo metodo, rispetto ad altri (come ad esempio riassegnare la proprieta’ DataSource del listbox o combobox), mantiene anche l’elemento attualmente selezionato nel listbox o combobox.

