如何清除 WPF 中的组合框?我试过这段代码:
private void btClear1_Click(object sender, RoutedEventArgs e)
{
txtID.Text = String.Empty;
this.cbType.SelectedItem = -1;
}
cbTypion.SelectedItem = -1
清除选择
cbType.Items.Clear()
清除所有项目
要清除选择集而SelectedIndex
不是SelectedItem
cboType.SelectedIndex = -1;
您也可以设置SelectedItem
or SelectedValue
,但将其更改为null
而不是 -1 (这些指向的对象不是整数)。
cboType.SelectedItem = null;
您可以通过在 XAML 页面中绑定来重置组合框。
例如,在 XAML 页面的组合框字段中:
text={Binding viewmodelobject Name.property Name}
然后在ViewModelPage
:
viewmodelobject Name.property Name="";
完全清除盒子里的物品
对于谷歌人来说,由于标题具有误导性,如果我们谈论从盒子里清除物品,我已经看到几个答案说使用cbType.Items.Clear()
. 这取决于项目的加载方式。您可以将它们硬编码到 XAML 中,在运行时使用函数动态添加它们,使用一种数据绑定类型和/或将它们加载到.ItemSource
. 它适用于除后一种情况之外的所有情况。
例如,当您使用通过 DataTable.ItemSource
加载时,您不能简单地执行. 由于问题中未包含填充下拉列表的方法,因此我认为,当您设置 时,您必须执行以下操作:ComboBox
DefaultView
cbType.Items.Clear()
.ItemSource
cbType.ItemsSource = null;
反而。否则,如果你尝试,cbType.Items.Clear()
你会得到:
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