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

WPF中讓Combobox具有查找功能

xaml 一個 rim 當前 tar component 代碼 opd 添加

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

先在xaml中添加一個combobox:

<Grid>
<ComboBox IsTextSearchEnabled="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設置數據源了
 public partial class MainWindow : Window
{
List<string> list = new List<string> { "aa", "bb", "abc", "csd", "sdlfks", "osdi", "awd" };
public MainWindow()
{
InitializeComponent();
comboBox1.ItemsSource = list;
	 }
    

在keyup中寫代碼,根據當前輸入的內容去數據源中模糊查找出匹配的數據顯示在下拉列中,代碼如下:

private void comboBox1_KeyUp(object sender, KeyEventArgs e)
{

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

WPF中讓Combobox具有查找功能