WPF自动搜索组合框项目

时间:2009-10-19 03:52:47

标签: wpf search combobox

在WPF中,当我在组合框中键入一些文本时,它会突出显示以我输入的文本开头的项目。 此突出显示将搜索我在组合框中输入的整个文本。但我希望文本搜索只匹配第一个字母。怎么做?

示例代码重新创建问题:

XAML:

<Window x:Class="ComboTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
  <StackPanel>
    <ComboBox x:Name="cb"></ComboBox>
  </StackPanel>
</Window>

代码背后:

 namespace ComboTest
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            cb.Items.Add("a");
            cb.Items.Add("ab");
            cb.Items.Add("abc");
            cb.Items.Add("agsf");
            cb.Items.Add("b1");
            cb.Items.Add("b2");
            cb.Items.Add("b3");
            cb.Items.Add("b4");
            cb.Items.Add("bbb");
            cb.Items.Add("bbbbb");
            cb.Items.Add("c4");
            cb.Items.Add("c");
            cb.Items.Add("c1");
            cb.Items.Add("c2");
            cb.Items.Add("cbb");
            cb.Items.Add("cbd");
            cb.Items.Add("d");
            cb.Items.Add("de");
            cb.Items.Add("df");

        }
    }
}

现在,运行解决方案,单击组合框打开弹出窗口并连续按下它将圈出所有以a开头的项目。当我们连续按下'B'时,我想要类似的行为。

1 个答案:

答案 0 :(得分:1)

Ioan Lazarciuc在http://www.lazarciuc.ro/ioan/2008/06/01/auto-complete-for-textboxes-in-wpf/上发表了一篇很棒的文章,你可以用它来模拟一个自动完成的组合框。

在您的特定情况下,您需要更改私有的 Suggest()方法来搜索第一个字母。