Zwischen zwei Seiten zwei Variablen übermitteln
Hallo
ich habe eine Frage ich wechsle auf eine andere XAML Page und übergebe eine Variable so:
Zitat:
[FONT=Calibri][FONT=Calibri]NavigationService.Navigate(new[FONT=Calibri][FONT=Calibri][/FONT][/FONT][FONT=Calibri][FONT=Calibri][FONT=Calibri]Uri[/FONT][/FONT][/FONT][FONT=Calibri][FONT=Calibri]([/FONT][/FONT][FONT=Calibri][FONT=Calibri][FONT=Calibri]"/MainPage.xaml?Farbe="[/FONT][/FONT][/FONT][FONT=Calibri][FONT=Calibri]+Farbe, [/FONT][/FONT][FONT=Calibri][FONT=Calibri][FONT=Calibri]UriKind[/FONT][/FONT][/FONT][FONT=Calibri][FONT=Calibri].Relative));[/FONT][/FONT]
[/FONT][/FONT][FONT=Calibri][FONT=Calibri][/FONT][/FONT]
[FONT=Calibri][FONT=Calibri][/FONT][/FONT]
Was ist den wenn ich jetzt zum Beispiel noch eine Zahl nicht nur die Farbe mitübermitteln möchte? Wie füge ich das oben in den NavigationService hinzu?
AW: Zwischen zwei Seiten zwei Variablen übermitteln
Ungefähr so, wenn ich mich richtig erinnere:
Code:
NavigationService.Navigate(newUri("/MainPage.xaml?Farbe="+Farbe + "&Zahl=" + Zahl, UriKind.Relative));
Ich habe dies allerdings noch nie verwendet, da mir dies zu umständlich ist. Ich arbeite lieber mit ViewModels, wo ich keine Daten die ganze Zeit mit Strings parsen muss.
AW: Zwischen zwei Seiten zwei Variablen übermitteln
Hallo,
man kann Daten als Parameter von Page-Objekten übergeben. Aber, günstiger ist es manchmal sich eine entsprechende Eigenschaft innerhalb der Klasse App anzulegen. Das geht dann so:
public partial class App : Application
{
public String Value { get; set; }
}
Auf diese Eigenschaft hat man dann von allen Pages/Klassen aus zugreifen. Beispielsweise so:
App app = (App)Application.Current;
app.Value = "Ein Beispiel";
in einer solchen Eigenschaft kann man natürlich auch eine komplette Klasse/Instanz ablegen.
Viele Grüße
Christian
Autor of Windows Phone 7-Apps entwickeln
AW: Zwischen zwei Seiten zwei Variablen übermitteln
Es kommt vom Design-Standpunkt halt immer darauf an was man da warum übergibt. Wenn ich einer Page als Parameter mitgebe welchen Artikel aus ner Datenbank sie anzeigen soll und in der Page nur damit gearbeitet wird, dann kommt der Parameter beim Navigieren auch nach einem Tombstoning wieder daher, ohne dass ich selbst etwas dafür tun muss.
Bei der Variante hier muss ich das Objekt setzen, es sollten nicht mehrere ähnliche Pages die das verwenden im Back-Stack liegen (sonst zeigen die nämlich nachher alle dasselbe an statt die richtigen Daten, usw).
Natürlich ist die Verwendung eines Singletones manchmal auch eine interessante Möglichkeit und eine die im klassischen App-Design recht häufig vorkommt. Man sollte nur nie die Navigations-Funktionalitäten aus den Augen lassen, die mit WPF und Silverlight entstanden sind und von den Usern gerade am Telefon auch stark genutzt werden.