清除WPF中的组合框

wgxvkvu9  于 2023-10-22  发布在  其他
关注(0)|答案(4)|浏览(133)

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

private void btClear1_Click(object sender, RoutedEventArgs e)
    {

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

xzlaal3s1#

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

yzuktlbb

yzuktlbb2#

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

cboType.SelectedIndex = -1;

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

cboType.SelectedItem = null;
byqmnocz

byqmnocz3#

可以通过在XAML页中绑定来重置组合框。
例如,在XAML页组合框字段中:

text={Binding viewmodelobject Name.property Name}

然后在ViewModelPage中:

viewmodelobject Name.property Name="";
rqcrx0a6

rqcrx0a64#

完全清除框项目

对于Google员工来说,由于标题具有误导性,如果我们谈论的是从盒子中清除项目,我已经看到几个答案说使用cbType.Items.Clear()。这取决于物品是如何装载的。您可以将它们硬编码到XAML中,在运行时动态添加函数,使用某种类型的数据绑定和/或将它们加载到.ItemSource。除了后一种情况,它对所有人都有效。
例如,当您使用.ItemSource通过DataTable的DefaultView加载ComboBox时,您不能简单地执行cbType.Items.Clear()。由于问题中没有包含填充.ItemSource的方法,因此我认为当您设置.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

相关问题