3

我有一个如下指定的组合框:

<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值驱动的自动完成。XAML 有没有办法禁用下拉错误并禁用下拉菜单?即制作一个简单的自动完成文本框,如控件?ComboBoxItems

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

4

1 回答 1

4

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

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

在后面的代码中:

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

我更喜欢这个解决方案而不是设置MaxDropDownHeight为 0。你的选择。

于 2014-07-10T13:52:03.497 回答