2014-02-03 2 views
1

У меня есть этот код, но он дает мне ошибку NullReference, когда я построил ее на Строке 22. Могу ли я узнать, где я делаю свои ошибки.Приложение для браузера WPF Null Reference Error

Заранее спасибо.

public partial class Page4 : Page 
{ 

    DispatcherTimer introTime = new DispatcherTimer(); 

    public Page4() 
    { 
     InitializeComponent(); 
     introTime.Interval = TimeSpan.FromSeconds(4); 
     introTime.Tick += new EventHandler(introTime_Tick); 
     introTime.Start(); 
    } 

    private void ToggleButton_Click(object sender, RoutedEventArgs e) 
    { 
     this.NavigationService.Navigate(new Uri("Page1.xaml", UriKind.Relative)); 
    } 

    private void introTime_Tick(object sender, EventArgs e) 
    { 
     if (button1.IsChecked == false) 
     { 
      this.NavigationService.Navigate(new Uri("Page1.xaml", UriKind.Relative)); 
     } 
    } 

} 
+1

и линии 22 является какая линия? –

+0

линия после кнопки1 проверка – user3264322

ответ

0

Похоже, вы пытаетесь получить доступ к NavigationService до его создания. Вы можете переопределить OnLoaded и сделать бит Timespan.Tick в теле.

Результат будет выглядеть примерно так

private void introTime_Tick(object sender, EventArgs e) 
{ 
    if (button1.IsChecked == false) 
    { 
     this.NavigationService.Navigate(new Uri("Page1.xaml", UriKind.Relative)); 
    } 
} 

void OnLoad(object sender, RoutedEventArgs e) 
{ 
    introTime.Interval = TimeSpan.FromSeconds(4); 
    introTime.Tick += new EventHandler(introTime_Tick); 
    introTime.Start(); 

}

WPF Navigation Overview

+0

Привет, я получаю сообщение об ошибке OnNavigatedTo. Это показывает, что «подходящий метод не найден, чтобы переопределить». – user3264322

+0

Моя ошибка в том, что это должно установить вас прямо. – Terrance

+0

Почему таймер нужен вообще, почему бы просто не проверить состояние кнопки в OnLoad? –