首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clear ComboBox with attached ItemsSource?-> ItemsSource =空-> NullReferenceException

Clear ComboBox with attached ItemsSource?-> ItemsSource =空-> NullReferenceException
EN

Stack Overflow用户
提问于 2012-09-17 03:51:39
回答 2查看 4.3K关注 0票数 1

我有一个激活这个ComboBox cmbGroupCheckBox chkAddToGroup。如果正在检查chkAddToGroup,则会发生以下情况:

代码语言:javascript
复制
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,应用程序将执行以下操作:

代码语言:javascript
复制
chkAddToGroup_Unchecked(this, null);

chkAddToGroup_Unchecked(object sender, RoutedEventArgs e)中,会发生以下情况:

代码语言:javascript
复制
private void chkAddToGroup_Unchecked(object sender, RoutedEventArgs e)
    {
        cmbGroup.ItemsSource = null;
        cmbGroup.IsEnabled = false;
        cmbGroupRole.ItemsSource = null;
        cmbGroupRole.IsEnabled = false;
    }

如您所见,我设置ItemsSource = null是为了清除组合框。(不知道其他方式的自动取款机)

如果用户在点击reset按钮之前没有选中复选框,那么没有什么特别的事情发生。但是,如果用户选中了复选框并选择了一个项目,那么只要应用程序尝试执行cmbGroup.ItemsSource = null;,就会出现一个NullReferenceException

这一切为什么要发生?有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2012-09-17 04:14:49

我不能保证这适用于WPF,但你可以试一试。我已经看了很久WPF了。

代码语言:javascript
复制
cmbGroup.Items.Clear();

代码语言:javascript
复制
for(int i=0; i<cmbGroup.Items.Count; i++)
{
   cmbGroup.RemoveAt(i);
}

或者使用空列表

代码语言:javascript
复制
ObservableCollection<Group> emptyList = new ObservableCollection<Group>();
cmbGroup.ItemsSource = emptyList;
票数 0
EN

Stack Overflow用户

发布于 2012-09-17 04:17:56

您可以尝试使用

代码语言:javascript
复制
cmbGroup.Items.Clear();

链接:http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.items.aspx

链接:http://msdn.microsoft.com/en-us/library/system.windows.controls.itemcollection.clear.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12450178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档