2015-03-26 2 views
0

Я пытаюсь перейти на другую страницу. Я использую шаблон MVVM. Так что моя кнопка переплетены к команде:Windows Phone навигация на другую страницу

private ICommand inscriptionPage; 

    public ICommand InscriptionPage 
    { 
     get 
     { 
      if (this.inscriptionPage == null) 
       this.inscriptionPage = new MyCommand(() => callInscriptionFunction()); 

      return this.inscriptionPage; 
     } 
    } 

    public void callInscriptionFunction() 
    { 
     PhoneApplicationPage nav = new PhoneApplicationPage(); 
     nav.NavigationService.Navigate(new Uri("Views/Registration/Registration.xaml", UriKind.Relative)); 
    } 

У меня есть это исключение в последней строке:

ссылка на объект не указывает на экземпляр объекта

я проверяю на в Интернете, попробовал другой вариант, но эта ошибка все еще существует.

Редактировать: Я попытался изменить команду, чтобы поместить ее прямо в код позади. Но у меня ошибка Debugger.break.

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     NavigationService.Navigate(new Uri("Views/Registration/Registration.xaml", UriKind.Relative)); 
    } 

Спасибо.

+0

Попробуйте [это] (http://stackoverflow.com/a/8751806/815938) в вашей команде; Кроме того, обратите внимание на ** относительный ** Uri, путь Uri может быть неправильным. – kennyzx

ответ

0

Во-первых, ваш Uri должен начинаться с косой черты, поэтому измените new Uri("Views/Registration/Registration.xaml", UriKind.Relative) на new Uri("/Views/Registration/Registration.xaml", UriKind.Relative). Это должно заставить ваш код работать.

Во-вторых, создание PhoneApplicationPage - действительно странная и неправильная идея. Если вы не используете рамки MVVM, которая предоставляет услуги навигации, УрГУ это

App.RootFrame.Navigate(new Uri("/Views/Registration/Registration.xaml", UriKind.Relative))