Comme toujours, cela dépend de ce que vous recherchez. Si vous voulez juste tirer la valeur de chaîne de requête lorsque vous avez atterri sur la page, utilisez le dictionnaire fourni par NavigationContext.QueryString:
En supposant que la page a été appelée avec l'URL suivante:
mainFrame.Navigate(new Uri("/Page1.xaml?Param=value", UriKind.Relative));
Le résultant OnNavigatedTo override pourrait ressembler à ceci:
// Executes when the user navigates to this page.
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (NavigationContext.QueryString.ContainsKey("Param"))
{
paramText.Text = NavigationContext.QueryString["Param"];
}
}
Ensuite, il est à vous pour régler le contenu sur « Page1 » en fonction du paramètre entrant. Maintenant, si vous voulez utiliser Uri Mapping et nettoyer votre Uri un peu, vous pouvez déclarer un UriMapper et le remettre à votre cadre de navigation, et l'utiliser pour changer votre URL "propre" en celle qui a une chaîne de requête .
<Navigation:UriMapper x:Key="PageMapper">
<Navigation:UriMapping Uri="/Things/{value}" MappedUri="/Page1.xaml?Param={value}"/>
</Navigation:UriMapper>
Appelé avec:
mainFrame.Navigate(new Uri("/Things/newValue", UriKind.Relative));
travaillera avec le même appel énumérés ci-dessus dans OnNavigatedTo, avec « newValue » passé comme la chaîne de requête (dans votre cas, l'identifiant) et les éléments suivants apparaissant dans la barre d'adresse:
'http://localhost:1877/SilverlightApplication3TestPage.aspx#/Things/newValue
Ceci est une réponse absolument génial. À votre santé – Maciek