Windows phone 8 – binding tra dati c# e controlli XAML
28 febbraio 2014  //  By:   //  Win-Dev  //  No Comment   //   1160 Views

In Windows Phone 8 il binding permette di creare un collegamento diretto tra i controlli del codice XAML ed il codice logico in  C# in modo che ad ogni modifica di uno viene modificato anche l’altro.

 

Il primo passo per effettuare questo collegamento è capire il cos’è un DataContext, ovvero il riferimento a dove effettivamente sono presenti i dati su cui effettuare il binding.

Ipotizziamo di voler modellare un oggetto di tipo persona ed effettuare il binding dei valori delle sue variabili d’istanza nelle TextBlock della pagina MainPage.xaml

1) Apriamo un nuovo progetto che chiameremo ModPersone

2) Aggiungiamo al progetto una classe .cs che chiameremo Persona

 

 

questa classe è caratterizzata da tre variabili d’istanza nome, cognome , eta con i relativi metodi get e set.

Nella pagina MainPage.xaml creiamo le TextBlock che conterranno il valori delle variabili sopra citate.

Nella pagina MainPage.cs istanziamo nel costruttore della classe un nuovo oggetto di tipo Persona. Associamo ad ogni proprietà della classe (nome,cognome, eta) un valore ed andiamo a specificare il DataContext, ovvero quali controlli avranno accesso a queste proprietà.

L’ultima riga del codice fa si che i valori associati a tutte le variabili d’istanza dell’oggetto persona di tipo Persona vengano viste da tutti i controlli all’interno della Grid chiamata LayoutRoot. Per concludere, all’interno del file MainPage.xaml, andiamo ad eseguire il vero e proprio binding delle informazioni sulle relative TextBlock  tramite il comando Text=”{Binding}”

In questa porzione di codice, ad esempio Text =”{Binding nome}”, abbiamo associato il valore della variabile d’istanza nome dell’oggetto persona di tipo persona alla TextBlock chiama nomeTxt. Eseguendo il programma appena realizzato  otterremo una pagina che mostrerà a video il seguente risultato

Nome:  Marco

Cognome: Rossi

Età: 30

About the Author :

Studente di Ingegneria Informatica Automatica, con una grande passione per la grafica ed i videogames.

Leave a reply