WP7 - NavigationService.Navigate se plaint de ne pas recevoir de référence d'objet. . . mais pourquoi?
WP7 newb question ici.
J'ai le code suivant:
public class KeyboardHandler : INotifyPropertyChanged
{
//lots of methods here
public void FunctionKeyHandler()
{
Uri targetUri = new Uri("/View/SelectTable.xaml",System.UriKind.Relative);
NavigationService.Navigate(targetUri);
}
//more methods
}
J'obtiens une erreur:
"Erreur 1 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)'
Pourquoi?
source d'informationauteur William Jockusch
Vous devez vous connecter pour publier un commentaire.
La Naviguer méthode est en fait partie de la non-statique NavigationService classe. Depuis qu'il n'est pas statique, vous devez créer une instance de celle-ci. La raison pour laquelle vous n'avez pas eu à créer une instance avant, parce que c'est une partie de la Page objet, mais comme vous n'êtes pas hériter de la Page objet, vous n'avez pas accès à la NavigationService instance.
Il y a différentes façons de contourner cela comme la création d'un gestionnaire d'événement dans votre usercontrol que votre Page d'hôte de l'objet (ex: page d'accueil) peuvent s'inscrire et avoir le feu le NavigationService sur son nom.
Ou vous pouvez simplement accéder à l'NavigationService à partir de l'hôte de l'Application comme suit:
NavigationService
est le nom d'une propriété dans lePhoneApplicationPage
classe, mais c'est aussi le nom de la classe.Lorsque vous appelez la
NavigationService.Navigate()
méthode à partir d'une page, vous devez utiliser l'objet à partir de la classe de base. Mais dans votre cas, vous n'avez pas un objet portant ce nom, de sorte que le compilateur essayez d'accéder à la NavigationService classe, et de faire un appel comme si Naviguer est une méthode statique.Mais il n'est pas statique, c'est pourquoi vous recevez ce message d'erreur : vous devez utiliser une instance de NavigationService