WPF: dal DataBinding ai Template - Prima parte

5 pagine in totale: <<Indietro 1 2 [3] 4 5 Avanti >>

Modalità di Binding

Terminata questa breve spiegazione, viene da chiedersi a cosa serve tutta questa infrastruttura, se con uno sforzo minimo potrei continuare a scrivere un Event Handler e aggiornare manualmente il valore della proprietà Text. Per fugare ogni dubbio non rimane altro che eseguire la nostra applicazione, se utilizzate Visual Studio 2005 o successivo, è sufficiente premere F5.

Esempio di binding TextBox/Slider

Com'era prevedibile trascinando lo Slider verso destra, la TextBox mostra l'attuale posizione dello Slider. È il momento di vedere cosa WPF può realmente offrire, digitiamo un valore nella TextBox, ad esempio cinque e spostiamo il focus allo Slider premendo il tasto Tab. La posizione dello Slider è aggiornata e rispecchia il valore appena inserito, trascinando di nuovo lo Slider il valore nella TextBox viene nuovamente aggiornato. Di fatto abbiamo creato un collegamento bidirezionale tra la TextBox e lo Slider rendendo alquanto labile il confine tra la sorgente dati e destinazione del binding. Nel nostro caso questa comunicazione avviene in modo del tutto trasparente e gratuita, grazie al fatto che oltre alla proprietà destinazione, anche quella sorgente è una DependecyProperty.

Questa comodità però non sarebbe stata disponibile se come fonte dati avessimo usato un oggetto CLR, quindi non necessariamente un DependecyObject, e perciò privo di DependecyProperty. Per stabilire il collegamento e far si che le modifiche apportate alla fonte dati siano propagate fino alle destinazione, è necessario implementare nella nostra classe l'interfaccia INotifyPropertyChanged o in alternativa creare per ogni proprietà un evento con la seguente monenclatura: nomeproprietàChanged. Tra le due, l'alternativa migliore è sicuramente la prima in quanto ottimizzata per funzionare con WPF. La comunicazione bidirezionale tra proprietà sorgente e destinazione è solo una delle possibilità disponibili per il binding e prende il nome di TwoWay. Diversamente la modalità OneWay rende questa comunicazione a senso unico:

_binding.Mode = BindingMode.OneWay;

Aggiungendo la precedente riga al nostro codice, la comunicazione tra Slider e TextBox diventa quella canonica che siamo abituati a osservare utilizzando l'event handler, cioè le modifiche apportate alla TextBox (destinazione) non sono più propagate verso Slider (sorgente). OneWayToSource è l'esatto opposto della modalità precedente, lo Slider non aggiorna più la TextBox, ma avviene il contrario, ribaltando i ruoli tra sorgente e destinazione. L'ultima modalità disponibile è OneTime, in questo caso lo Slider inizializza la TextBox , dopodiché non vi è più comunicazione tra la proprietà.

5 pagine in totale: <<Indietro 1 2 [3] 4 5 Avanti >>

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.
Nick60 scrive:
WPF: dal DataBinding ai Template - Prima parte

L'articolo è ottimo.Vorrei solo suggerire, per rendere il sorgente XAML più semplice e focalizzare l'attenzione del lettore sul tema trattato, di ...
giovedì 1 maggio 2008 | 1 risposta

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.



TUTORIALS


IN EVIDENZA
MISC