WPF, Silverlight, Windows Phone 8 und Windows Store Apps

Windows Phone 8.1: Seitennavigation und der "NavigationCacheMode"
Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und Fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „Windows Phone 8.1: Seitennavigation und der „NavigationCacheMode““. Viel Spaß mit XAML Expertise.

Eine der Änderungen in Windows Phone 8.1 ist die Handhabung der Seitennavigation, die nun wie bei Windows-Store-Apps erfolgt. Hinter dieser Änderung steckt der Wunsch nach einer gesteigerten Codekompatibilität gemäß dem neuen Universal-Apps-Konzept.

Windows Phone 8.1: Seitennavigation und der „NavigationCacheMode“

Unter Windows Phone 8 wurde diese Funktion noch über das NavigationService Property der Page-Klasse gehandhabt. Ab Version 8.1 wird die Seitennavigation nun über die Frame-Klasse geregelt. In diesem Beispiel wird eine Anwendung mit einer MainPage und zwei BasicPages erzeugt. Die MainPage erhält zunächst einen Button. Das Click-Event des Buttons wird anschließend abonniert und die Eventmethode mit dem folgenden Code gefüllt:

Frame.Navigate(typeof (BasicPage1));

Als Nächstes wird die Oberfläche der BasicPage1 ebenfalls mit einem Button bestückt. Auch hier wird das Click-Event abonniert und die Eventmethode erhält den oben aufgeführten Code, allerdings wird diesmal auf die BasicPage2 navigiert. Zusätzlich wird der BasicPage1 noch eine TextBox hinzugefügt. Wird nun die Anwendung gestartet, kann man ohne Probleme zu den nächsten Seiten navigieren. Zur Navigation auf die vorherige Seite ist kein weiterer Button notwendig, nutzen Sie hierfür einfach den Back-Button des Windows Phones.

Wenn man jetzt in die TextBox der BasicPage1 einen Text eingibt und zur BasicPage2 oder der MainPage navigiert, wird die Eingabe beim Zurücknavigieren nicht mehr vorhanden sein. Dies geschieht, da der NavigationCacheMode standardmäßig auf required gesetzt ist. Um sich die Eingabe nach der Seitennavigation zu merken, muss in der BasicPage1.xaml im Headerbereich der NavigationCacheMode auf Enabled gesetzt werden:


  x:Class="AlarmAndReminderExample.BasicPage1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  mc:Ignorable="d"
  Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
  NavigationCacheMode="Enabled">
...

Jetzt kann die Anwendung nicht nur zwischen den Seiten hin und her navigieren, sondern sie merkt sich auch noch den Inhalt der TextBox auf der BasicPage1.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -