清除WPF中的组合框

时间:2013-10-14 14:45:56

标签: c# wpf combobox

如何在WPF中清除组合框?我试过这段代码:

 private void btClear1_Click(object sender, RoutedEventArgs e)
    {

        txtID.Text = String.Empty;
        this.cbType.SelectedItem = -1;
    }

4 个答案:

答案 0 :(得分:4)

cbTypion.SelectedItem = -1清除选择 cbType.Items.Clear()清除所有项目

答案 1 :(得分:3)

您可以通过XAML页面中的绑定重置组合框。

例如,在XAML页面中的组合框字段中:

text={Binding viewmodelobject Name.property Name}

然后在ViewModelPage

viewmodelobject Name.property Name="";

答案 2 :(得分:2)

要清除选择,请设置SelectedIndex而不是SelectedItem

cboType.SelectedIndex = -1;

您也可以设置SelectedItemSelectedValue,但将其更改为null而不是-1(这些指向对象而不是整数)。

cboType.SelectedItem = null;

答案 3 :(得分:1)

完全清算箱子物品
对于Google员工,由于标题具有误导性,如果我们正在谈论从框中清除项目,我已经看到几个答案说要使用cbType.Items.Clear()。这取决于物品的装载方式。您可以将它们硬编码到XAML中,在运行时动态添加它们,使用一种数据绑定和/或将它们加载到.ItemSource。它适用于除后一种情况之外的所有情况。

例如,当您使用.ItemSource通过DataTable的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