Objekte unter WP8 übergeben

Manchmal kommt man nicht drum herum und man möchte Daten von zwischen zwei Seiten in seiner Windows Phone App austauschen. In diesem Beitrag möchte ich dazu zwei Varianten vorstellen, welche diese Aufgabe übernehmen und nicht nur Strings, sondern auch komplexe Objekte zwischen Seiten austauschen können.

Einfache Objekte – String, Integer, Double, …

Die erste Variante erlaubt es beispielsweise Strings zu übergeben. Als Szenario könnte man hier z.B. die Weitergaben eines Textes aus einer TextBox nehmen. In dem folgenden Beispiel navigieren wir auf die SecondPage.xaml und übergeben als Parameter den Inhalt der TextBox NameTextBox. Hierzu wird der Text einfach an den Seitenaufruf mit ein ? angefügt und mit einem Namen (hier: name) versehen.

Auf der SecondPage implementieren wir nun die OnNavigatedTo-Methode und können den Parameter entgegen nehmen und auswerten.

Nun kann man mit der Variablen name weiterarbeiten und zum Beispiel in einer MessageBox ausgeben.

Komplexe Objekte – eigene Datenstruktur

Mit der zweiten Variante ist es möglich nun ganze Objekte zu übergeben und nicht nur einzelne Daten, wie Strings oder Integers. Dafür verwenden wir den PhoneApplicationService, welcher das Objekt für uns abspeichert und uns so auf einer anderen Seite wieder zur Verfügung steht. Zunächst speichern wir das Objekt, hier mit dem Namen MyPersonObject, im PhoneApplicationService und navigieren anschließend ganz normal zur zweiten Seite unserer App. Sollte der PhoneApplicationService noch nicht zur Verfügung stehen, müsst ihr noch  using Microsoft.Phone.Shell; zur using-Liste hinzufügen.

Auf der SecondPage implementieren wir auch hier die OnNavigatedTo-Methode und hier laden wir das Objekt und können anschließend damit arbeiten.

You may also like...

2 Responses

  1. Elias sagt:

    Meiner Meinung ein gutes Beispiel.
    Aber ich habe leider ein Problem.
    Ich möchte das wenn man auf einen Button drückt auf sagen wir mal PAGE1.xaml. Und in PAGE1.xaml ein string namens TEST abgelegt ist. Dann möchte ich das der string TEST mit dem Text HALLOWELT schon beim Seiten start in einem TextBlock geöffnet wird.
    LG Elias

  2. Hallo Elias,
    so ganz kann ich dein Kommentar nicht nachvollziehen. Du möchtest also direkt auf der ersten Seite etwas anzeigen lassen?
    Dies könntest du dann ja schon statisch einfügen.
    Viele Grüße
    Sebastian

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *