2014-01-26 2 views
0

Недавно я начал разработку WP 8. Я знаю C# немного, но не так много. Кстати, я пытаюсь открыть страницу прагматично, но приложение сокрушительно.Windows Phone 8 открыть новую страницу программно

Мой код здесь

NavigationService.Navigate(new Uri("/Dashboard.xaml", UriKind.Relative)); 

Но я спутать, потому что это работает, когда я размещая код, указанный выше в код блока событий щелчка кнопки.

ОШИБКА Detail Исключение типа «System.NullReferenceException» произошло в TestProgram.DLL, но не был обработан в пользовательском коде

Если есть обработчик для этого исключения, программа может быть безопасно продолжение ,

Мне нужен ваш совет.

EDIT: Код Добавлено

Credens MyCred = new Credens(); 

// Constructor 
public MainPage() 
{ 
    InitializeComponent(); 

    if (MyCred.ifExists("api_key")) 
    { 
     NavigationService.Navigate(new Uri("/Dashboard.xaml", UriKind.Relative)); 
    } 

} 
+0

Когда вы вызываете метод навигации? –

+0

Возможно, слишком рано, и поэтому NavigationService является нулевым, поскольку он еще не инициализирован. – venerik

+1

@venerik Это моя точка;) –

ответ

6

Вы не можете использовать NavigationService в конструкторе. Поместите свой код в OnNavigatedTo события и оно не будет врезаться

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    if (MyCred.ifExists("api_key")) 
    { 
     NavigationService.Navigate(new Uri("/Dashboard.xaml", UriKind.Relative)); 
    } 
} 
1

ли вы следовать this tutorial шаг за шагом?

Вы правильно указываете код. Как вы сказали, у вас должно быть что-то вроде этого:

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

Есть ли у вас страница в одной папке? Вы проверяли путь? Существует ли страница? Можете ли вы загрузить его? Если вы добавите точку перерыва в NavigationService, где это не удалось?

Я думаю, что эта документация очень полезна.

+1

Ответы должны содержать не только ссылку (см. Http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers) –

+0

Спасибо. Я это прочитаю. – aloisdg

0

Try призывающего Navigate() на PhoneApplicationPageLoaded или OnNavigatedTo() событий.