ASP.Net  »  Articoli  »  Silverlight 

La gestione dei dati in Silverlight 2: Binding e dintorni

di: Riccardo Di Nuzzo     28 Gennaio 2009

L'associazione tra controlli dell'interfaccia utente e i dati (contenuti in una Collection, in un documento Xml o in una Datatable) avviene utilizzando l'oggetto Binding.

Grazie a questo oggetto possiamo specificare il "target", ovvero il destinatario dell'associazione (es. la proprietà Text di una TextBox), e la sorgente dei dati (es. la RagioneSociale di un oggetto di tipo Cliente).

Possiamo dichiarare l'oggetto Binding direttamente nel markup XAML, assegnando i dati alla proprietà desiderata.

Ecco l'esempio di una TextBox associata ad un campo RagioneSociale:

<TextBox x:Name="txtRagioneSociale" 
         Text="{Binding Path=RagioneSociale}" />

Le proprietà più interessanti dell'oggetto Binding sono:

ProprietàDescrizione
Pathè un parametro di default e non è obbligatorio specificarlo. Indica il nome della proprietà che contiene il dato nella sorgente dati. L'esempio precedente può essere anche scritto: {Binding RagioneSociale}
Modepuò assumere due possibili valori OneWay e TwoWay (di default OneWay).
Se vogliamo che le modifiche apportate nel controllo vengano propagate all'oggetto che contiene i dati è necessario specificare TwoWay:
{Binding RagioneSociale, Mode=TwoWay}
Sourceè opzionale e consente di specificare la sorgente dati, direttamente nell'oggetto Binding

Possiamo anche scegliere di gestire l'associazione dati nel code-behind:

Binding b = new Binding();
b.Source = ((Cliente)lbClienti.SelectedItem).RagioneSociale;
txtRagioneSociale.SetBinding(TextBox.TextProperty, b);

Associare controlli ed entità

Tipicamente, quando parliamo di Data Layer, intendiamo per "entità" un oggetto che contiene i dati, ad esempio un oggetto di tipo Cliente contenente una serie di proprietà.

Per associare uno o più controlli a questa entità, possiamo utilizzare la classe DataContext. Essa è esposta dai controlli Silverlight e serve per impostare la sorgente dati. Vediamo come impostarla via codice.

Supponiamo di avere una ListBox chiamata "lbClienti" che contiene un elenco di oggetti di tipo Cliente e una TextBox chiamata "txtRagioneSociale". Ecco come collegare al DataContext della TextBox l'oggetto selezionato nella ListBox:

txtRagioneSociale.DataContext = lbClienti.SelectedItem as Cliente;

L'associazione che abbiamo appena visto è tra un singolo controllo di tipo TextBox e un singolo oggetto di tipo Cliente.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto