WPF中讓Combobox具有查找功能


需求:由於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;
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM