Silverlight - Comment naviguer d'un contrôle utilisateur vers une page normale?
Si je fais cela à l'intérieur d'un Contrôle Utilisateur:
NavigationService.Navigate(new Uri("/Alliance.xaml", UriKind.Relative));
il dit que cette erreur:
Une référence d'objet est requise pour la non-statique champ, une méthode ou une propriété du Système".De Windows.La Navigation.NavigationService.Naviguer(Système D'.Uri)'
Merci
Bien, je l'ai résolu en passant à la Page normale comme un argument à l'Utilisateur de Contrôler, afin que je puisse obtenir le NavigationService.
source d'informationauteur Alan
Vous devez vous connecter pour publier un commentaire.
J'ai l'habitude d'utiliser un Gestionnaire d'événements. Exemple:
dans votre contrôle de l'utilisateur, de définir quelque chose comme
que vous appelez dans votre contrôle ennemi exemple, comme ceci:
Puis dans le constructeur de votre page d'accueil.xaml.cs (si le contrôle de l'utilisateur est qu'il contient) vous permettra de définir:
et quelque part dans votre page d'accueil.xaml.cs-vous finalement déclarer l'action à faire:
Voici une autre solution pour Silverlight pour Windows Phone 8:
NavigationService est une classe. Naviguer est une méthode que vous pouvez appeler sur les instances de cette classe. Ce n'est pas une méthode statique vous pouvez appeler à partir de l'extérieur d'un objet de référence.
Fondamentalement, vous avez besoin pour obtenir le courant NavigationService pour la page en cours. Ce lien http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationservice.aspx devrait aider.
NavigationService est une propriété de l'objet page dans Silverlight, qui est pourquoi vous obtenez cette erreur. Ce n'est pas une propriété d'un UserControl dans Silverlight.
Voici quelques options qui seront en mesure de résoudre le problème que vous avez vu.
Traiter le usercontrol comme un contrôle. Donnez-lui un événement que l'on va se déclencher quand le bouton est cliqué. La page peut écouter pour cet événement et de gérer la navigation quand il se déclenche.
Vous pouvez permettre à votre page d'accès de son parent ou de passer le NavigationService à partir de la page de l'objet usercontrol.
Vous pouvez également le configurer à l'aide de la messagerie, mais ce serait plus compliqué.De nombreux MVVM cadres des fonctions de messagerie. MVVM Light .
Je sais que c'est vieux, mais j'ai aussi été dans la même situation sur une application Silverlight. Je voulais faire quelque chose de similaire à Deepak réponse, mais je ne pouvais pas le découvrir pour le plus long temps pourquoi il ne fonctionne pas dans mon cas.
S'avère que j'ai besoin d'appeler d'actualisation, et de ne pas naviguer; parce que je pensais que naviguer permettrait de recharger la page si l'URI est la même que la page en cours. Pardonnez ma débutant-ness.