我正在尝试在您键入功能时实现搜索(例如默认电子邮件应用程序中的搜索功能)-我有一个包含 50 个项目的列表框-每个项目都绑定到具有字符串字段的类对象...我希望在其中一个字符串字段中搜索和显示在搜索框中包含文本的项目 - 这就像用户在文本框中键入的键...尝试了几种方法 -->
1 >> 使用 CollectionViewSource
- 将 CollectionViewSource 绑定到数据库中的所有项目
- 将列表框绑定到 CollectionViewSource
- 设置 CollectionViewSource 的过滤器属性 - 其函数在项目的搜索框中搜索文本和设置 e.Accepted - 在每个 keyup 事件上
- 过滤工作正常,但 50 个项目的速度很慢 :( - 猜测过滤器的 cos 获取每个项目并检查是否将 e.Accepted 属性设置为 true
.... 加载时调用一个 DB但似乎需要大量处理来决定 CollectionViewSource 在文件管理器中显示哪个元素
2 >> Filter @ DB level
- on keyup - 将搜索框中的文本发送到 ViewModel,其中函数返回具有搜索字符串的对象的 ObservableCollection
- ObservableCollection 绑定到列表框
.... 没有太多处理@顶层,但每个按键上都有多个数据库调用 - 仍然很慢,但比方法一快一点
您还有其他推荐的方法吗?或者有什么建议可以进一步优化上述方法?- 有什么调整可以让搜索顺利运行吗?
第一次进入移动开发:) ...提前感谢:)