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();