1

Windows Phoneクラスのプログラムに取り組んでいますが、少し問題が発生しました。アプリケーションを起動しようとすると、静的ObservableCollectionにアクセスしようとするとnull参照例外が発生します。静的であるため、インスタンス化する必要はないと思いました。私はここで何か間違ったことをしていますか?方法は次のとおりです。

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    this.DataContext = null;
    this.DataContext = Settings.NotesList;
    Settings.CurrentNoteIndex = -1;
    TheListBox.SelectedIndex = -1;
    if (Settings.NotesList.Count <= 0) // EXCEPTION
    {
        NoteStatus.Visibility = System.Windows.Visibility.Visible;
        TheListBox.Visibility = System.Windows.Visibility.Collapsed;
    }
    else
    {
        NoteStatus.Visibility = System.Windows.Visibility.Collapsed;
        TheListBox.Visibility = System.Windows.Visibility.Visible;
    }
}

別のファイルのどこにありますか:

public static class Settings
{
    static Settings() { }
    public static ObservableCollection<Note> NotesList;
    static IsolatedStorageSettings settings;
    private static int currentNoteIndex;
    public static int CurrentNoteIndex { get; set; }
}

これ以上書く前にプログラムをテストしたかったのですが、何が原因なのかわかりません。OnNavigatedToはアプリケーションの起動によるものであるため、MainPage.xamlにアクセスすることすらありません。ヘルプは非常にありがたいです。

4

1 に答える 1

1

静的であっても、どこかでインスタンス化する必要があります。

于 2012-10-27T01:14:03.577 に答える