Databinding di controlli in .NET Compact Framework

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.

Leave a Reply