首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合框过滤器文本丢失时,我输入最新的输入,但有一些延迟

组合框过滤器文本丢失时,我输入最新的输入,但有一些延迟
EN

Stack Overflow用户
提问于 2011-12-05 19:03:52
回答 1查看 902关注 0票数 3

我需要这个WPF ComboBox作为一个下拉列表,其中用户不能输入文本像文本框,但仍然能够通过键入文本搜索。

我设置了IsEditable = false和IsTextSearchEnabled = true,它就可以工作了。

但问题是,假设用户正在搜索文本"Japan“。用户使用"J“开始向组合框中输入文本。一些以"J“开头的项目会出现在下拉面板的筛选列表中。现在,如果用户等待3-4秒,然后键入"a“(完成键入"Japan"),则过滤后的列表将移动到以"a”开头的项目。

它应该搜索"Ja“,但它搜索"a”并丢弃"J“。

你知道我该怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-06 10:44:10

简而言之,我认为你不能(轻易)做到。请看这篇文章:

WPF combobox search item

归根结底,ComboBox在内部使用了一个名为TextSearch的内置类。在此类中,超时间隔是硬编码的,不能公开访问,因此您不能更改此行为。

但是,您可以幸运地实现自己的控件,该控件继承自ComboBox并提供对受保护成员OnTextInputOnKeyDown的覆盖。在这里,您可以实现自己的搜索逻辑和超时(可以公开为DependencyProperty,因此可以从XAML中配置)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8384317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档