我在WPF中有一个ComboBox,其ItemsSource以编程方式设置为列表。我如何在事件处理程序中清除选择?我试过了:
comboBox.SelectedIndex = -1;
comboBox.SelectedItem = null;
comboBox.SelectedValue = null;
comboBox.SelectedValue = "";
它们都没有任何效果。
答案 0 :(得分:21)
comboBox.SelectedIndex = -1;
适合我。
你在事件处理程序中做了什么吗?你在使用数据绑定吗?
答案 1 :(得分:5)
comboBox.SelectedIndex = -1;
是要走的路。我不知道为什么它不适合你;也许SelectedIndexChanged
的事件处理程序会更改值?
答案 2 :(得分:3)
我发现我还需要添加:
comboBox.Text = "";
让文字清除
答案 3 :(得分:1)
我希望清除另一个ComboBox
的{{1}}事件中的DropDownClosed
。因此,我在第一个ComboBox
ComboBox
事件
DropDownClosed
答案 4 :(得分:0)
在下面的示例中,我展示了它对我的工作方式,这适用于用户控件中的ComboBox:
用户控件中的组合框:
<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 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 = "";
}
答案 5 :(得分:0)
ComboBox.SelectedIndex = -1对我不起作用,可能是因为我在自定义ComboBox中使用了自定义ControlTemplate吗?无论如何,重置ItemsSource确实可以。我从行为中称呼这个。
var items = comboBox.ItemsSource;
comboBox.ItemsSource = null;
comboBox.ItemsSource = items;