Die Übergabe von Parametern zwischen XAML-Seiten ist ein grundlegender Aspekt eines effektiven Anwendungsdesigns. Unabhängig davon, ob Sie durch Seiten in einer Windows Phone-, Silverlight-, WPF- oder Windows 8-Anwendung navigieren, wird das Verständnis der geeigneten Methoden zur Datenübergabe die Funktionalität und Benutzererfahrung Ihrer Anwendung verbessern.
Für eine einfache Datenübertragung kann der Abfragestring verwendet werden. Über diese Methode übergebene Daten müssen in Zeichenfolgen konvertiert und URL-codiert werden.
Navigationsseite:
page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test", UriKind.Relative));
Zielseite:
string parameter = string.Empty; if (NavigationContext.QueryString.TryGetValue("parameter", out parameter)) { this.label.Text = parameter; }
NavigationEventArgs bietet Zugriff auf Parameter, die während der Navigation durch Methodenaufrufe übergeben werden.
Navigationsseite:
page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test", UriKind.Relative)); // and ... protected override void OnNavigatedFrom(NavigationEventArgs e) { Page destinationPage = e.Content as Page; if (destinationPage != null) { destinationPage.PublicProperty = "String or object.."; } }
Zielseite:
// Use the value of "PublicProperty"..
Die manuelle Navigation ermöglicht die Weitergabe benutzerdefinierter Parameter durch den Konstruktor.
Navigationsseite:
page.NavigationService.Navigate(new Page("passing a string to the constructor"));
Zielseite:
public Page(string value) { // Use the value in the constructor... }
Der Hauptunterschied liegt im Anwendungslebenszyklus. Manuell erstellte Seiten bleiben im Speicher erhalten, über Uri navigierte Seiten dagegen nicht.
Methode 1 und 2 können zur Übergabe komplexer Objekte verwendet werden, alternativ können auch benutzerdefinierte Eigenschaften verwendet werden zur Anwendungsklasse hinzugefügt oder Daten können in Application.Current.Properties gespeichert werden.
Das obige ist der detaillierte Inhalt vonWie kann man Werte effizient zwischen XAML-Seiten übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!