C# 清除带有附加项的组合框来源-&燃气轮机;ItemsSource=null->;NullReferenceException
我有一个C# 清除带有附加项的组合框来源-&燃气轮机;ItemsSource=null->;NullReferenceException,c#,wpf,event-handling,C#,Wpf,Event Handling,我有一个复选框chkAddToGroup,它激活了这个组合框cmbGroup。 如果正在检查chkAddToGroup,则会发生以下情况: ObservableCollection<Group> groupColl = new ObservableCollection<Group>() { }; foreach (Group g in GroupHandler.GroupList) { groupColl.Add(g); } cmbGroup.ItemsSourc
复选框chkAddToGroup
,它激活了这个组合框cmbGroup
。
如果正在检查chkAddToGroup
,则会发生以下情况:
ObservableCollection<Group> groupColl = new ObservableCollection<Group>() { };
foreach (Group g in GroupHandler.GroupList)
{
groupColl.Add(g);
}
cmbGroup.ItemsSource = groupColl;
cmbOrganisation.SelectedIndex = 0;
cmbGroup.IsEnabled = true;
在chkAddToGroup\u未选中(对象发送方,RoutedEventArgs e)
中,然后发生以下情况:
private void chkAddToGroup_Unchecked(object sender, RoutedEventArgs e)
{
cmbGroup.ItemsSource = null;
cmbGroup.IsEnabled = false;
cmbGroupRole.ItemsSource = null;
cmbGroupRole.IsEnabled = false;
}
如您所见,我设置ItemsSource=null
以清除组合框。(不知道其他方式)
如果用户在按下重置按钮之前没有选中复选框,则不会发生任何特殊情况。
但是,如果用户确实选中了复选框并选择了一个项目,那么只要应用程序尝试执行cmbGroup.ItemsSource=null,就会出现NullReferenceException
代码>
为什么会发生这种情况?有什么想法吗?我不能向您保证这适用于WPF,但您可以试一试。我看WPF已经很久了
cmbGroup.Items.Clear();
或
for(int i=0;i您可以使用
cmbGroup.Items.Clear();
链接:
链接:几乎所有NullReferenceException的情况都是相同的。请参阅“”以获取一些提示。是否确定?cmbGroup.ItemsSource=null;不应抛出NullRefenceExceptoin。cmbGroup.Items.Clear();
不起作用。由于问题是另一个问题,因此未尝试其他解决方案。只要cmbGroup
的选择发生更改,就会触发一个事件,导致对另一个组合框进行更新。然后,另一个组合框将读取cmbGroup
的选定项,并将选定项的一些数据应用于自身。但是如果ected item==null则无法读取任何内容。这是NullReferenceException:(无论如何,感谢您的帮助!
for(int i=0; i<cmbGroup.Items.Count; i++)
{
cmbGroup.RemoveAt(i);
}
ObservableCollection<Group> emptyList = new ObservableCollection<Group>();
cmbGroup.ItemsSource = emptyList;
cmbGroup.Items.Clear();