5

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

 private void btClear1_Click(object sender, RoutedEventArgs e)
    {

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

4 回答 4

5

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

于 2013-10-14T14:51:05.240 回答
3

要清除选择集而SelectedIndex不是SelectedItem

cboType.SelectedIndex = -1;

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

cboType.SelectedItem = null;
于 2013-10-14T14:52:09.193 回答
3

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

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

text={Binding viewmodelobject Name.property Name}

然后在ViewModelPage

viewmodelobject Name.property Name="";
于 2015-11-07T06:24:28.543 回答
1

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

例如,当您使用通过 DataTable.ItemSource加载时,您不能简单地执行. 由于问题中未包含填充下拉列表的方法,因此我认为,当您设置 时,您必须执行以下操作:ComboBoxDefaultViewcbType.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
于 2016-11-02T13:54:00.557 回答