我有一个CheckBox chkAddToGroup
激活这个ComboBox 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;
如您所见cmbGroup
,附加到groupColl
(DisplayMemberPath
设置在外部Style
)。
如果我尝试重置表单,则会出现问题。因此我有一个Button btnReset
. 如果用户单击btnReset
应用程序,则执行以下操作:
chkAddToGroup_Unchecked(this, null);
然后发生以下情况chkAddToGroup_Unchecked(object sender, RoutedEventArgs e)
:
private void chkAddToGroup_Unchecked(object sender, RoutedEventArgs e)
{
cmbGroup.ItemsSource = null;
cmbGroup.IsEnabled = false;
cmbGroupRole.ItemsSource = null;
cmbGroupRole.IsEnabled = false;
}
如您所见,我设置ItemsSource = null
以清除组合框。(不知道任何其他方式atm)
如果用户在点击重置按钮之前没有选中复选框,则不会发生任何特殊情况。但是如果用户确实选中了复选框并选择了一个项目,那么就会有一个NullReferenceException
一旦应用程序尝试执行,就会出现cmbGroup.ItemsSource = null;
为什么会这样?任何想法?