2012-09-28 8 views
5

Ho due pagine XAML: Menu.xaml e Main.xaml.Come passare valori da una pagina xaml a un'altra in un'app stile Metro

Su Menu.xaml, ho 2 pulsanti (Easy & Hard) e quando faccio clic sui pulsanti, navigo su Main.xaml.

Voglio passare qualche valore quando faccio clic su "Facile" o "Difficile", in modo da poter popolare Main.xaml in modo appropriato.

1. Come posso passare valori/argomenti in C#?
2. Dove posso recuperare questi valori (ad esempio su PageLoad?)

risposta

3

Dai un'occhiata ai metodi Frame.Navigate. C'è un sovraccarico che ti lascia passare un parametro.

See this for an example

In genere questo sarebbe simile a questa:

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) 
} 

Per recuperare l'aspetto dei parametri di navigazione in LayoutAwarePage (incluso nei modelli di esempio) LoadState metodo

2

navigazione è piuttosto semplice in una Metro App.

C# Esempio:

Aggiungi questo al vostro scatto o qualunque altro evento che si porta alla pagina principale.

this.Frame.Navigate(typeof(Main),myDifficulty); 

Quindi nella pagina a cui si sta navigando, è possibile ottenere l'argomento nel relativo evento OnNavigatedTo.

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