1. 程式人生 > >WPF中讓Combobox具有查詢功能

WPF中讓Combobox具有查詢功能

需求:由於combobox繫結的資料來源數量比較多,如果讓使用者在下拉列中查詢,難免會不太方便,於是就需要讓combobox可以輸入內容,並且希望根據使用者輸入的內容去自動匹配,這樣效率就會提高!

先在xaml中新增一個combobox:

<Grid>
<ComboBoxIsTextSearchEnabled="False"IsEditable="True"Height="23"HorizontalAlignment="Left"Margin="12,23,0,0"Name="comboBox1"VerticalAlignment="Top"Width="120"KeyUp="comboBox1_KeyUp"

/>

</Grid>

先看設定的屬性:
IsEditable就是啟用或禁用 ComboBox 的文字框中的文字編輯,讓combobox可以輸入內容
IsTextSearchEnabled就是是否開啟TextSearch,預設是開啟的
接著就是給combobox設定資料來源了
publicpartialclassMainWindow:Window
{
List<string> list =newList<string>{"aa","bb","abc","csd","sdlfks","osdi","awd"};
publicMainWindow()
{
InitializeComponent
();
            comboBox1.ItemsSource= list;
}
在keyup中寫程式碼,根據當前輸入的內容去資料來源中模糊查找出匹配的資料顯示在下拉列中,程式碼如下:

privatevoid comboBox1_KeyUp(object sender,KeyEventArgs e)
{

List<string> mylist =newList<string>();
            mylist = list.FindAll(delegate(string s){return s.Contains(comboBox1.Text.Trim());});


            comboBox1.ItemsSource= mylist;
            comboBox1.IsDropDownOpen=true;
}