我有列表框,我想添加项目,当我尝试使用以下代码时出现错误
对象引用未设置为对象的实例。“
错误是当我执行item source = _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();
}
答案 0 :(得分:3)
尝试使用.InitializeComponent方法必须在使用xaml
中定义的任何元素之前调用 public MainWindow()
{
InitializeComponent();
_UsersList.Add(new User {Name = "Mike"});
_UsersList.Add(new User { Name = "Nick" });
listbox1.ItemsSource = _UsersList;
DataContext = this;
答案 1 :(得分:3)
只有在调用InitializeComponent
后才能访问UI元素。
InitializeComponent() 实际上是对控件的部分类的方法调用,该部分类负责呈现UI元素 为了你的控制。因此,如果您在此之前访问它,它将永远是 null,因为那些尚未初始化。
public MainWindow()
{
_UsersList.Add(new User {Name = "Mike"});
_UsersList.Add(new User { Name = "Nick" });
DataContext = this;
InitializeComponent();
listbox1.ItemsSource = _UsersList;
}