Windows Phone Navigation
La navigazione di una App Windows Phone si implementa in maniera semplice ed intuitiva, somiglia infatti alla navigazione di un sito web. Supponiamo di avere una lista di elementi e vogliamo poter accedere ad una pagina di dettaglio per ciascuno di essi.
Nel MainPage.xaml definiremo una ListBox del tipo:
<ListBox Name="list" SelectionChanged="list_SelectionChanged"> <ListBox.ItemTemplate> <DataTemplate> <!-- controlli e binding --> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
Nel relativo file .cs possiamo gestire la navigazione nell'evento SelectionChanged:
private void list_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (list.SelectedIndex == -1) { return; } NavigationService.Navigate(new Uri("/Details.xaml?selectedItem=" + list.SelectedIndex, UriKind.Relative)); list.SelectedIndex = -1; }
Ora non resta che sovrascrivere l'evento NavigatedTo nel file Details.xaml.cs in questo modo:
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); string selectedItem; if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedItem)) { int index; if (Int32.TryParse(selectedItem, out index)) { // Successo return; } } // Gestione errori }
comments powered by Disqus