C#程序崩溃,因为列表框项发生了更改
我正在为我的学习开发一个应用程序。现在我刚刚启动了一个应用程序,在那里我得到了一个足球联盟和俱乐部等的数据库。我的应用程序有以下功能C#程序崩溃,因为列表框项发生了更改,c#,C#,我正在为我的学习开发一个应用程序。现在我刚刚启动了一个应用程序,在那里我得到了一个足球联盟和俱乐部等的数据库。我的应用程序有以下功能 联盟的组合框 列表框,显示基于您从联盟中选择的俱乐部 根据您从俱乐部中选择的球员显示的列表框。 现在我得到了这个错误 System.NullReferenceException:对象引用未设置为对象的实例 现在我知道了为什么会出现这个错误,因为如果我选择了一个播放器,它会向标签提供有关该播放器的一些信息。但如果在组合框中选择其他联赛或在列表框中选择其他俱乐部
- 联盟的组合框
- 列表框,显示基于您从联盟中选择的俱乐部
- 根据您从俱乐部中选择的球员显示的列表框。 现在我得到了这个错误 System.NullReferenceException:对象引用未设置为对象的实例
private void Listboxspelers_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//set player statistics
lblpositie.Content = "Positie: " + db.GetPositie(listboxspelers.SelectedItem.ToString());
lbldoelpunten.Content = "Aantal Doelpunten: " + db.GetDoelpunten(listboxspelers.SelectedItem.ToString());
lblgelekaarten.Content = "Aantal GeleKaarten: " + db.GetGeleKaarten(listboxspelers.SelectedItem.ToString());
lblRodeKaarten.Content = "Aantal RodeKaarten: " + db.GetRodeKaarten(listboxspelers.SelectedItem.ToString());
}
在调用
ToString()
之前,请检查listboxspellers.SelectedItem
是否为null
。您还应该只调用一次ToString()
方法,因为您将相同的值传递给所有方法:
private void Listboxspelers_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//set player statistics
if (listboxspelers != null && listboxspelers.SelectedItem != null)
{
string selectedItem = listboxspelers.SelectedItem.ToString();
lblpositie.Content = "Positie: " + db.GetPositie(selectedItem);
lbldoelpunten.Content = "Aantal Doelpunten: " + db.GetDoelpunten(selectedItem);
lblgelekaarten.Content = "Aantal GeleKaarten: " + db.GetGeleKaarten(selectedItem);
lblRodeKaarten.Content = "Aantal RodeKaarten: " + db.GetRodeKaarten(selectedItem);
}
}
试试这个:
private void Listboxspelers_SelectionChanged(object sender, SelectionChangedEventArgs e){
if(listboxspelers.SelectedItem != null){
lblpositie.Content = "Positie: " + db.GetPositie(listboxspelers.SelectedItem.ToString());
lbldoelpunten.Content = "Aantal Doelpunten: " + db.GetDoelpunten(listboxspelers.SelectedItem.ToString());
lblgelekaarten.Content = "Aantal GeleKaarten: " + db.GetGeleKaarten(listboxspelers.SelectedItem.ToString());
lblRodeKaarten.Content = "Aantal RodeKaarten: " + db.GetRodeKaarten(listboxspelers.SelectedItem.ToString());
}
}
检查
listboxspellers.SelectedItem
是否为null
。