2009-10-19 3 views
2

В WPF, когда я набираю текст в combobox, он будет выделять элемент, начинающийся с введенного текста. Эта подсветка будет искать весь текст, который я ввел в поле со списком. Но вместо этого я хочу, чтобы текстовый поиск соответствовал только первой букве. Как это сделать?WPF Auto search combobox item

Пример кода, чтобы воссоздать проблему:

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> 

Код Behind:

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

Отличная статья Иоана Лазарчука в http://www.lazarciuc.ro/ioan/2008/06/01/auto-complete-for-textboxes-in-wpf/, которую вы можете использовать для имитации автозаполнения комбинированного блока.

В вашем конкретном случае вам нужно будет изменить частную пустоту Предложить() метод поиска первой буквы.