簡體   English   中英

WPF 組合框過濾器不適用於第一個字符 WPF C#?

[英]WPF Combo box filter not working on the first character WPF C#?

基本上我所擁有的是一個 wpf 組合框,同時啟用了 isTextSearchEnable 和 isEditable。 我想允許使用鍵入他們想要查找的內容並過濾組合框項目以僅顯示相關項目。

如果用戶在 MP-1 中鍵入,它應該只顯示包含這些文本的項目而不顯示不相關的項目。 到目前為止,該代碼適用於第二個字符,但不適用於第一個字符。 任何想法或我在這里做錯了什么? 輸入第一個字符 輸入第二個字符

我到目前為止的代碼,

public class FilterViewModel
        {
            public IEnumerable<string> DataSource { get; set; }

            public FilterViewModel()
            {
                DataSource = new[] { "MP-10001", "MP-10002", "MP-10003", "MP-10004", "XD-20001", "XD-20002", "XD-20003" };
            }
        }

        public MainWindow()
        {
            InitializeComponent();

            FilterViewModel vm = new FilterViewModel();
            this.DataContext = vm;
        }


        private void FilteredCmb_KeyUp(object sender, KeyEventArgs e)
        {
            CollectionView cv = (CollectionView)CollectionViewSource.GetDefaultView(cmbBox.ItemsSource);
            
            cv.Filter = ((o) =>
            {
                if (String.IsNullOrEmpty(cmbBox.Text)) return true;
                else
                {
                    if (((string)o).Contains(cmbBox.Text)) return true;
                    else return false;
                }
            });

            cv.Refresh();            
        }
<Grid>
        <ComboBox x:Name="cmbBox" HorizontalAlignment="Left" Margin="78,36,0,0" VerticalAlignment="Top" Width="362" IsEditable="True" IsTextSearchEnabled="True" Height="47" KeyUp="FilteredCmb_KeyUp" StaysOpenOnEdit="True" IsDropDownOpen="True" ItemsSource="{Binding DataSource}"/>

    </Grid>

isTextSearchEnable="True" 的默認行為是選擇第一個部分匹配,因此您的過濾器匹配整個項目並為所有其他條目返回 false。 看看 xaml 關於你似乎已經從以下問題獲得代碼的問題: 簡單 WPF combobox 過濾器

您可以使用 AutoCompleteBox,包含搜索和過濾高級功能的漂亮控件,安裝此 Package:

PM> Install-Package WPFToolkit

這是一個很好的教程: https://www.broculos.net/2014/04/wpf-autocompletebox-autocomplete-text.html

對於它從 codeplex 中刪除的下載鏈接,您可以在這里找到它: https://github.com/dotnetprojects/WpfToolkit

或者 xceed 有一個很好的控制:

Install-Package Extended.Wpf.Toolkit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM