如何在可编辑的ComboBox中防止键盘导航

时间:2016-12-20 04:53:46

标签: c# wpf visual-studio

我有一个包含数字列表的WPF ComboBox。它还有一个自定义项,它可以变成一个可编辑的文本框,供用户输入自己的值。

在可编辑组合框中,如果我按下项目列表中的数字,它会跳转到该数字并从可编辑文本框中跳出。

示例: ComboBox包含项目“1”,“2”,“3”,“自定义”。 我单击“自定义”以输入我自己的值。我按3键输入“30”然后跳到第3项。

XAML

<ComboBox x:Name="comboBox1" HorizontalAlignment="Left" Margin="115,156,0,0" VerticalAlignment="Top" Width="53" Foreground="White">
    <System:String>1</System:String>
    <System:String>2</System:String>
    <System:String>3</System:String>
    <System:String>Custom</System:String>
</ComboBox>

我使用C#

使ComboBox从静态转为可编辑
private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    // Custom ComboBox Editable
    if ((string)comboBox1.SelectedItem == "Custom" | comboBox1.SelectedValue == null)
    {
        comboBox1.IsEditable = true;
    }

    // Other Items Disable Editable
    if ((string)comboBox1.SelectedItem != "Custom" && comboBox1.SelectedValue != null)
    {
        comboBox1.IsEditable = false;
    }

    // Maintain Editable ComboBox while typing
    if (comboBox1.IsEditable == true)
    {
        comboBox1.IsEditable = true;

        // Clear Custom Text
        comboBox1.Text = string.Empty;
    }
}

1 个答案:

答案 0 :(得分:2)

您可以尝试停用IsTextSearchEnabled

请参阅:singleton bound