Con WPF è possibile realizzare una tipologia di applicazioni che in certi aspetti ricordano le applicazioni Web, dove il contenuto è organizzato in pagine navigabili.
In WPF il contenuto navigabile potrebbe essere potenzialmente qualsiasi cosa (anche una semplice pagina HTML), ma tipicamente è rappresentato dall'oggetto Page analogamente a quanto avviene per un'applicazione web, anche in WPF, spesso è necessario passare dati tra le pagine.
Creiamo due semplici pagine, una con un bottone l'altra con una Label che visualizzerà i dati che gli saranno passati. Nella prima pagina creiamo un gestore per l'evento click:
<Button Height="23" Click="NavigateTo">Pagina 2</Button>
A differenza delle applicazioni web, dove i dati sono scambiati in QueryString sotto forma di testo, con WPF è possibile passare ad una pagina qualsiasi tipo.
Per prima cosa istanziamo il nostro tipo e assegniamo a un suo campo un semplice messaggio. Infine recuperiamo il servizio di gestione della navigazione per navigare alla seconda pagina.
void NavigateTo(object sender, RoutedEventArgs e) { // Istanzio l'oggetto da passare alla pagina CustomType _customType = new CustomType(); // Imposto un suo campo _customType.OneField = "valore da passare alla seconda pagina"; // Navigo alla seconda pagina NavigationService.Navigate(new SecondPage(_customType)); }
Utilizziamo l'overload nel metodo Navigate che accetta come parametro un oggetto, cosi potremo istanziare la pagina verso cui navigare, passando il nostro tipo nel costruttore.
Non rimane altro che aggiungere un custruttore alla pagina destinazione che accetti come parametro il tipo che intendiamo passare.
public SecondPage(CustomType customType): this() { if (customType != null) { Label1.Content = customType.OneField; } }
Nel costruttore ci assicuriamo che l'oggetto passato non sia nullo e impostiamo il contenuto della label.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Creare una libreria CSS universale: Cards
- Eseguire script pre e post esecuzione di un workflow di GitHub