我有一个ListBox,其中包含至少1000个项目,每个类别都说“数据”具有“名称”属性 . 我在列表框上方还有一个文本框,用于根据输入文本过滤列表框中的项目 . 如何在列表框中快速查找项目 .
我尝试过这样的事情:在textBox_textChanged事件中,我得到了文本,并使用CollectionViewSource类来过滤掉项目,但这导致了一个非常生涩的ui . (我通过在我的Data类上获取Name属性并执行string.Contains()调用来过滤掉项目)
有没有办法加快搜索速度?谢谢 .
1 回答
我使用LINQ过滤数千个响应时间很长 .
FTSwordFilter是过滤器 . 当它被更改时,我在筛选列表上调用NotifgyPropertyChanged .
只需用Contains替换StartsWith即可
我还可以选择使用DamerauLevenshteinDistance进行模糊滤波
我是在后台任务上做的,但它足够快,我把它移到了前台 .
我添加了2/10秒的延迟以允许输入多个字符 .