2014-01-05 25 views
2

林有列表框,我想給它添加的項目,當我用下面的代碼試過我有錯誤錯誤而賦予觀察員收集到列表框中

對象引用不設置到對象的實例。 「

的錯誤是,當我做項目源= _userList,

我究竟做錯了什麼?

public ObservableCollection<User> _UsersList = new ObservableCollection<User>(); 

public MainWindow() 
{ 
    _UsersList.Add(new User {Name = "Mike"}); 
    _UsersList.Add(new User { Name = "Nick" }); 
    listbox1.ItemsSource = _UsersList; 
    DataContext = this; 
    InitializeComponent(); 
} 

回答

3

Tr的Y本.InitializeComponent方法必須使用XAML

public MainWindow() 
{ 
    InitializeComponent(); 

    _UsersList.Add(new User {Name = "Mike"}); 
    _UsersList.Add(new User { Name = "Nick" }); 
    listbox1.ItemsSource = _UsersList; 
    DataContext = this; 
3

你應該訪問的UI元素InitializeComponent被調用後才定義的任何元素之前調用。

的InitializeComponent()實際上是一個方法調用到局部類,這是負責呈現UI元素 爲您的控制的控制的。因此,如果您在此之前訪問它,它將始終爲 null,因爲它們尚未初始化。

public MainWindow() 
{ 
    _UsersList.Add(new User {Name = "Mike"}); 
    _UsersList.Add(new User { Name = "Nick" }); 
    DataContext = this; 
    InitializeComponent(); 

    listbox1.ItemsSource = _UsersList; 
}