2012-09-28 49 views
5

Tengo dos páginas XAML: Menu.xaml y Main.xaml.Cómo pasar valores de una página xaml a otra en una aplicación de estilo Metro

En Menu.xaml, tengo 2 botones (Easy & Hard) y cuando hago clic en los botones, navego a Main.xaml.

Quiero pasar algo de valor cuando hago clic en 'Fácil' o 'Difícil', para que pueda poblar Main.xaml apropiadamente.

1. ¿Cómo puedo pasar valores/argumentos en C#?
2. ¿Dónde obtengo estos valores (por ejemplo, en PageLoad?)

Respuesta

3

Mire los métodos Frame.Navigate. Hay una sobrecarga que le permite pasar un parámetro.

See this for an example

Normalmente, esto sería algo como esto:

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

Para recuperar el aspecto de parámetros de navegación en la LayoutAwarePage (incluido en las plantillas de muestra) LoadState método

2

navegación es bastante simple en una aplicación Metro.

C# Ejemplo:

Añadir esto a su clic o cualquier otro evento que lleva a la página principal.

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

Luego, en la página a la que está navegando, puede obtener el argumento en su evento OnNavigatedTo.

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