Condividi tramite


Data binding

Browse sample. Esplorare l'esempio

Un'app .NET multipiattaforma dell'interfaccia utente dell'app (.NET MAUI) è costituita da una o più pagine, ognuna delle quali contiene in genere più oggetti dell'interfaccia utente denominati visualizzazioni. Una delle attività principali dell'app consiste nel mantenere sincronizzate queste visualizzazioni e tenere traccia dei vari valori o selezioni che rappresentano. Spesso le visualizzazioni rappresentano valori di un'origine dati sottostante e gli utenti modificano queste visualizzazioni per modificare tali 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 queste modifiche, l'app deve ricevere una notifica delle modifiche apportate a queste visualizzazioni o ai 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, quando sono presenti molte visualizzazioni, devono essere presenti anche molti gestori eventi, che comportano un sacco di codice boilerplate.

Il data binding automatizza questa attività ed esegue il rendering dei gestori eventi non necessari. I data binding possono essere implementati in XAML o nel codice, ma sono molto più comuni in XAML, in cui consentono di ridurre le dimensioni del file code-behind. Sostituendo il codice procedurale nei gestori eventi con codice dichiarativo o markup, l'app viene semplificata e chiarita.

Il data binding è quindi la tecnica di collegamento delle proprietà di due oggetti in modo che le modifiche in una proprietà vengano riflesse automaticamente nell'altra proprietà. 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 sono spesso visualizzati in questi articoli, 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.

Importante

.NET MAUI esegue il marshalling degli aggiornamenti dell'associazione al thread dell'interfaccia utente. Quando si usa MVVM, questo consente di aggiornare le proprietà del modello di visualizzazione associato a dati da qualsiasi thread, con il motore di associazione di .NET MAUI che apporta gli aggiornamenti al thread dell'interfaccia utente.