在将数据发送到API服务器之前,我想要验证一些输入框。我想在您键入时进行验证,但如果我在您刚刚开始输入用户名的时候一直告诉您用户名太短,那就太烦人了。我也不想在每一个按键上重新验证,因为无论如何下一个按键使它无效。
我在 Android 上做的是我有一个Handler
,其中包含许多验证码,每个验证码对应一个需要验证的字段。每次该字段更改时,我都会使用匹配的字段ID清除队列中的所有消息,并在 750ms 延迟的队列中放入一个新消息。一旦750ms启动,我的处理程序将被调用以对与消息ID相关联的字段执行验证。这允许我仅在用户停止在该字段中键入至少750ms后才执行验证。这也意味着如果用户键入10个字符
在750ms暂停之前,我只验证一次。
是否建议在Windows Phone 8(C#)上执行此操作?
我基本上需要一种低延迟的排队任务来延迟执行的方法,能够取消/重新安排任务。
大多数验证都发生在设备上并且可以在UI线程上执行,但是需要针对服务器验证一个字段,因此它必须在BG线程上运行(例如是这样的用户名?)。
答案 0 :(得分:1)
如果将文本框(文本)绑定到视图模型中的属性,则默认情况下绑定不会发生,直到文本框失去焦点。
因此,如果您正在使用建议的绑定技术,则可以在视图模型中的属性更新时调用验证代码。