Silverlight for Windows Phone implementa il classico sistema di navigazione tipico delle applicazioni web: esiste una cronologia e ci si può spostare indietro, così da tornare alla pagina precedente, piuttosto che invocare una pagina su cui navigare.
Per navigare tra le pagine è necessario che prendiamo dimestichezza con i concetti di Frame e Page, implementati attraverso i controlli PhoneApplicationFrame e PhoneApplicationPage.
C'è una sola istanza di PhoneApplicationFrame per ogni applicazione, poiché questa è la classe responsabile di gestire lo spazio, occupato da system tray, application bar, oltre che dal contenuto vero e proprio della pagina. Quest'ultimo è a propria volta gestito attraverso la classe PhoneApplicationPage, che corrisponde ad ogni pagina all'interno del nostro frame.
La classe NavigationService espone diversi metodi, tra cui spiccano Navigate e GoBack. Nell'esempio gestiamo il click su un pulsante e portiamo a termine il relativo cambio di pagina:
private void Button1_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative)); }
È anche possibile inviare parametri alla pagina, sfruttando il classico sistema basato su querystring, previsto da Silverlight:
private void Button1_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new Uri("/Page2.xaml?ID=5", UriKind.Relative)); }
Per leggere queste informazioni in Page2.xaml, dovremo sfruttare la classe NavigationContext, che offre una proprietà QueryString che può tornare utile per questo scenario.
A tal proposito, la classe PhoneApplicationPage include un'infrastruttura minima per gestire la navigazione, attraverso i due metodi OnNavigatedTo e OnNavigatedFrom, che si verificano rispettivamente quando la pagina diventa quella attiva all'interno del PhoneApplicationFrame e quando smette di esserlo. Nel primo caso è possibile leggere le informazioni passate da una pagina chiamante, mentre nel secondo si possono, ad esempio, salvare tutti i dati prima di passare alla pagina successiva.
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); string id= string.Empty; if (NavigationContext.QueryString.TryGetValue("ID", out id)) TextBlock1.Text = id; }
Queste classi consentono di gestire al meglio uno degli aspetti principali di un'applicazione per Windows Phone, quindi vanno gestiti di conseguenza.
Questo script è tratto dal libro 'Sviluppare applicazioni per Windows Phone':
http://books.aspitalia.com/Windows-Phone/
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Definire stili a livello di libreria in Angular
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Usare le collection expression per inizializzare una lista di oggetti in C#
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Utilizzare Azure Cosmos DB con i vettori
Applicare un filtro per recuperare alcune issue di GitHub
Ordinare randomicamente una lista in C#
Effettuare il refresh dei dati di una QuickGrid di Blazor
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Eseguire una query su SQL Azure tramite un workflow di GitHub
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
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