2012-09-28 7 views
5

Ich habe zwei XAML-Seiten: Menu.xaml und Main.xaml.So übergeben Sie Werte von einer XAML-Seite an eine andere in einer Metro-App

Auf Menu.xaml habe ich 2 Tasten (Easy & Hard) und wenn ich auf die Schaltflächen klicke, navigiere ich zu Main.xaml.

Ich möchte einen Wert weitergeben, wenn ich auf "Einfach" oder "Hart" klicke, , damit ich Main.xaml entsprechend füllen kann.

1. Wie kann ich Werte/Argumente in C# übergeben?
2. Wo kann ich diese Werte abrufen (z. B. auf PageLoad?)

Antwort

3

Werfen Sie einen Blick auf die Frame.Navigate Methoden. Es gibt eine Überladung, bei der Sie einen Parameter übergeben können.

See this for an example

Regel etwa so aussehen würde dies:

private void OnButtonClick(object sender, EventArgs args) 
{ 
    if (sender == easyButton) 
     NavigateToDifficulty(DifficultyLevel.Easy); 
    else 
     NavigateToDifficulty(DifficultyLevel.Hard); 
} 

private void NavigateToDifficulty(DifficultyLevel difficulty) 
{ 
    this.Frame.Navigate(typeof(DifficultyPage), difficulty) 
} 

die Navigationsparameter Blick auf die LayoutAwarePage abzurufen (in den Beispielvorlagen enthalten) LoadState Methode

2

Navigation ist ziemlich einfach in einer Metro App.

C# Beispiel:

Fügen Sie diese auf Ihren Klick oder was auch immer anderes Ereignis, das Sie auf die Hauptseite nimmt.

Dann auf der Seite, zu der Sie navigieren, können Sie das Argument in seinem OnNavigatedTo-Ereignis abrufen.

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    var myDifficulty= e.Parameter; 
    ...  
}