在WP8的文本框控件中输入更快
本文关键字:输入 控件 WP8 文本 | 更新日期: 2023-09-27 18:03:44
在我的WP8应用程序中,我使用一种搜索方法,当TexBox中的文本发生变化时进行搜索。现在我需要修改这个搜索。当用户在文本框中快速输入时,搜索应该只在用户输入后执行。也就是说,搜索方法不应该对每次修改的文本执行。这可能吗?
有可能吗?
绝对。您基本上需要一个计时器——或者更确切地说,每次击键都需要一个计时器。
最简单的方法可能是:
- 每次用户按一个键,启动一个计时器。计时器应该记住此时已经输入的文本。 当计时器触发时,如果当前文本与"计时器开始时的文本"相同,则执行搜索。
一个潜在的缺点是,如果用户键入"foo",计时器启动,用户键入"d",然后删除"d",然后计时器触发,它将执行搜索,尽管键入后的活动。如果您认为这是不需要的,您可以简单地维护一个计数器—只是一个int
表示有多少次击键。当计时器启动时,请记住,并检查计时器触发时计数是否与以前相同。
(可以用单个计时器来解决这个问题,这样当用户键入时,计时器就会启动或其触发时间被延迟。就我个人而言,我认为这更复杂,但这取决于你。
你可以考虑使用响应式扩展库,这是一种异步通信方式,并在异步活动上提供了大量抽象。这是一种基于推送的机制,即只要数据可用,感兴趣的订阅者就会收到通知。它支持取消问题、请求等。有关示例,请参阅101 Rx