在wpf中关闭Combobox中的autoComplete

时间:2013-11-29 17:57:16

标签: wpf silverlight xaml combobox

我正在使用.NET framework 4.0来构建我的应用程序。

我有一个组合框,我想在其中关闭combobox的建议附加模式。相反,我想要建议模式。

在许多问题中,用户要求关闭自动完成功能,并且我得到了相同的答案。即将IsTextSearchEnabled设置为False。

当IsTextSearchEnabled = True

enter image description here

当IsTextSearchEnabled = False时

enter image description here

我想要的是:

enter image description here

当用户在Combobox上按Enter时,我希望将项目附加到组合框的文本框中。

这个东西在WPF中是否可行?

1 个答案:

答案 0 :(得分:3)

像这里承诺的是演示。如你所见,我做了我在评论中解释的内容。我听了文字改变了事件。

检查出来:

<Grid>
    <local:MyComboBox x:Name="comboBox" IsEditable="True"
              VerticalAlignment="Center"
              IsTextSearchEnabled="True">
        <ComboBoxItem>hello</ComboBoxItem>
        <ComboBoxItem>world</ComboBoxItem>
        <ComboBoxItem>123</ComboBoxItem>
    </local:MyComboBox>
</Grid>

public class MyComboBox : ComboBox
{
    private string myValue;
    private bool needsUpdate;

    public override void OnApplyTemplate()
    {
        TextBox tbx = this.GetTemplateChild("PART_EditableTextBox") as TextBox;

        tbx.PreviewKeyDown += (o, e) =>
        {
            this.needsUpdate = true;
        };

        tbx.TextChanged += (o, e) =>
            {
                if (needsUpdate)
                {
                    myValue = tbx.Text;
                    this.needsUpdate = false;
                }
                else
                {
                    tbx.Text = myValue;
                }
            };

        base.OnApplyTemplate();
    }
}