Operation is not valid while ItemSource is in use. Access and modify
elements with ItemsControl.ItemsSource instead
清除所选项目
我回去看了OP的评论,说我的愿望是清除选择,而不是盒子。对于这一点,其他答案成立:
cbType.SelectedIndex = -1;
cbType.Text = ""; // I've found the first line does this for me, as far as appearances, but found other postings saying it's necessary - maybe they were using the property and it wasn't getting cleared, otherwise
4条答案
按热度按时间xzlaal3s1#
cbType.SelectedItem = -1
清除选择cbType.Items.Clear()
清除所有项目yzuktlbb2#
要清除选择,请设置
SelectedIndex
而不是SelectedItem
您也可以设置
SelectedItem
或SelectedValue
,但将其更改为null
而不是-1(这些指向对象而不是整数)。byqmnocz3#
可以通过在XAML页中绑定来重置组合框。
例如,在XAML页组合框字段中:
然后在
ViewModelPage
中:rqcrx0a64#
完全清除框项目
对于Google员工来说,由于标题具有误导性,如果我们谈论的是从盒子中清除项目,我已经看到几个答案说使用
cbType.Items.Clear()
。这取决于物品是如何装载的。您可以将它们硬编码到XAML中,在运行时动态添加函数,使用某种类型的数据绑定和/或将它们加载到.ItemSource
。除了后一种情况,它对所有人都有效。例如,当您使用
.ItemSource
通过DataTable的DefaultView
加载ComboBox
时,您不能简单地执行cbType.Items.Clear()
。由于问题中没有包含填充.ItemSource
的方法,因此我认为当您设置.ItemSource
时,必须执行以下操作:cbType.ItemsSource = null;
否则,如果你尝试
cbType.Items.Clear()
,你会得到:清除所选项目
我回去看了OP的评论,说我的愿望是清除选择,而不是盒子。对于这一点,其他答案成立: