禁用WPF ComboBox的下拉菜单

时间:2013-10-29 16:24:24

标签: c# .net wpf xaml combobox

我有一个ComboBox,如下所示:

<ComboBox Height="31" Margin="7,7,0,0" Name="callerID" IsEditable="True"  Background="LightBlue" KeyDown="callerIDbar_KeyDown" Foreground="White" FontSize="17"  FontWeight="Bold" HorizontalContentAlignment="Center" VerticalAlignment="Top" Grid.Row="0" Grid.Column="0"  />

storedCalls是一组电话号码,将填充到ComboBox.Items

foreach (string call in storedCalls)
{
   if (call != "Enter a number to dial")
      callerID.Items.Add(call);
}

这一切都很好。我填充了Items主要内容,因为我喜欢由ComboBox的{​​{1}}个集合中的值驱动的自动完成功能。有没有办法让XAML禁用下拉错误,并禁用下拉菜单?即制作一个简单的自动完成文本框,如控件?

我已经看到完整的Items控件包含一堆代码隐藏和复杂的标记,这不是我想要做的。我只需要禁用显示下拉菜单的功能。

1 个答案:

答案 0 :(得分:3)

您可以处理DropDownOpened事件,然后将其关闭 所以在XAML中你会得到:

<ComboBox x:Name="cb" DropDownOpened="cb_DropDownOpened"/>

在Code Behind中:

private void cbCategoria_DropDownOpened(object sender, EventArgs e)
    {
        ComboBox cb = sender as ComboBox;
        cb.IsDropDownOpen = false;
    }

我首先将此解决方案重新设置为将MaxDropDownHeight设置为0。 你的选择。