Xamarin.Forms Data binding
Il data binding è la tecnica che consente di collegare le proprietà di due oggetti in modo che le modifiche apportate a una proprietà vengano automaticamente riflesse nell'altra proprietà. Il data binding è parte integrante dell'architettura dell'applicazione Model-View-ViewModel (MVVM).
Il problema del collegamento dei dati
Un'applicazione Xamarin.Forms è costituita da una o più pagine, ognuna delle quali contiene in genere più oggetti dell'interfaccia utente denominati visualizzazioni. Una delle attività principali del programma consiste nel mantenere sincronizzate le viste e tenere traccia dei diversi valori o selezioni che rappresentano. Spesso le viste rappresentano i valori di un'origine dati sottostante e l'utente effettua operazioni sulle viste per modificare i dati. Quando una vista viene modificata, i dati sottostanti devono riflettere la modifica e, in modo analogo, quando i dati sottostanti cambiano, la modifica deve essere riflessa nella vista.
Per gestire correttamente il processo, è necessario segnalare al programma le modifiche apportate nelle viste o nei dati sottostanti. La soluzione comune consiste nel definire gli eventi che segnalano quando si verifica una modifica. Si può quindi installare un gestore dell'evento che riceve le notifiche relative alle modifiche. Il gestore risponde trasferendo i dati da un oggetto a un altro. Tuttavia, se sono presenti molte viste, è necessario usare anche molti gestori degli eventi ed è richiesta una grande quantità di codice.
La soluzione offerta dal data binding
Il data binding consente di automatizzare questo processo ed elimina la necessità di usare gestori degli eventi. I data binding possono essere implementati nel codice o in XAML, ma sono molto più comuni in XAML dove contribuiscono alla riduzione delle dimensioni del file code-behind. Sostituendo il codice procedurale nei gestori degli eventi con codice dichiarativo o markup, l'applicazione diventa più semplice e chiara.
Uno dei due oggetti coinvolti in un data binding è quasi sempre un elemento che deriva da View
e fa parte dell'interfaccia visiva di una pagina. L'altro oggetto può essere:
- Un altro oggetto
View
derivato, in genere nella stessa pagina. - Un oggetto in un file di codice.
I data binding tra due View
derivati vengono spesso visualizzati a scopo di chiarezza e semplicità. Tuttavia, gli stessi principi possono essere applicati ai data binding tra un oggetto View
e altri oggetti. Quando un'applicazione viene compilata usando l'architettura MVVM (Model-View-ViewModel), la classe con dati sottostanti viene spesso definita modello di visualizzazione.
I data binding sono illustrati nelle seguenti serie di articoli:
Binding di base
Informazioni sulla differenza tra l'origine e la destinazione del data binding con esempi di data binding semplici nel codice e in XAML.
Modalità di binding
Illustra in che modo la modalità di binding può controllare il flusso di dati tra i due oggetti.
Formattazione delle stringhe
Usare un data binding per formattare e visualizzare gli oggetti come stringhe.
Percorso di binding
Informazioni dettagliate sulla proprietà Path
del data binding per l'accesso a proprietà secondarie e ai membri della raccolta.
Convertitori di valori per i binding
Usare i convertitori di valori dei binding per modificare i valori all'interno del data binding.
Binding relativi
Utilizzare associazioni relative per impostare l'origine dell'associazione in relazione alla posizione della destinazione dell'associazione.
Fallback di binding
Per rendere più solidi i data binding, definire i valori di fallback da usare se il processo di binding ha esito negativo.
Associazioni multi-binding
Collegare una raccolta di oggetti a una singola proprietà di destinazione di Binding
associazione.
Interfaccia di comando
Implementare la proprietà Command
con i data binding.
Binding compilati
Usare binding compilati per migliorare le prestazioni del data binding.