以编程方式清除 WPF ComboBox 中的选择

问题描述 投票:0回答:7

我在 WPF 中有一个 ComboBox,其 ItemsSource 以编程方式设置为列表。我将如何清除事件处理程序中的选择?我试过:

comboBox.SelectedIndex = -1;
comboBox.SelectedItem = null;
comboBox.SelectedValue = null;
comboBox.SelectedValue = "";

它们都没有任何效果。

c# wpf
7个回答
31
投票

comboBox.SelectedIndex = -1;
对我有用。

您还在事件处理程序中执行其他操作吗?您使用数据绑定吗?


5
投票
comboBox.SelectedIndex = -1;

这是要走的路。我不知道为什么它对你不起作用;也许

SelectedIndexChanged
的事件处理程序会更改值?


4
投票

我发现我还需要添加:

comboBox.Text = "";

清除文字


1
投票

我想清除另一个

ComboBox
DropDownClosed
事件中的
ComboBox
。因此,我在第一个
ComboBox
DropDownClosed
事件

中使用了以下代码
private void comboBox1_DropDownClosed(object sender, EventArgs e)
{
  this.comboBox.ItemsSource = null;
}

0
投票

在下面的示例中,我展示了它对我的工作方式,这是针对用户控件中的组合框:

用户控件中的组合框:

<ComboBox x:Name="OFFSE_INI_CMBX" HorizontalAlignment="Left" Margin="26,106,0,0" VerticalAlignment="Top" Height="20" Width="100" DropDownClosed="OFFSE_INI_CMBX_DropDownClosed">
        <ComboBoxItem x:Name="NV" Content="           NV" ToolTip="Sub Command &#10;Tooltip 1" Height="20" Selected="NV_Selected"></ComboBoxItem>
    </ComboBox>

有效的功能

private void OFFSE_INI_CMBX_DropDownClosed(object sender, EventArgs e)
    {
        this.OFFSE_INI_CMBX.SelectedIndex = -1;
        this.OFFSE_INI_CMBX.Text = "";
    }

0
投票

ComboBox.SelectedIndex = -1 对我不起作用,也许是因为我在自定义 ComboBox 中使用自定义 ControlTemplate?无论如何,重置 ItemsSource 确实有效。我从行为中调用此。

            var items = comboBox.ItemsSource;
            comboBox.ItemsSource = null;
            comboBox.ItemsSource = items;

0
投票

首先,您必须在选择更改功能中执行此操作

private void combobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

            if (combobox.SelectedIndex == -1)
            {
               combobox.SelectedIndex.ToString();
            }
            else
            {
                string datacombo=(combobox.SelectedValue.ToString());
            }
             

        }

之后在任何地方使用combobox.SelectedIndex=-1。现在我正在使用另一个组合框来选择选择更改

 private void cbocombobox2_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            combobox.SelectedValue=null;
            combobox.SelectedIndex = -1; 
        }

这对我有用,alhamdulillah

© www.soinside.com 2019 - 2024. All rights reserved.