我在某些地方看到过(抱歉,目前无法提供链接)表单中的验证错误会显示在顶部的标签中。当用户填写表单时,该错误文本会相应更改。
我可以看到一个明显的if ... else和处理“Validating”等事件来实现这一点(虽然它对于复杂的表单来说可能会非常繁琐)。有没有更简单,更清洁的方法来做到这一点?
谢谢!
答案 0 :(得分:1)
您应该按照this blog post中的说明考虑实施IDataErrorInfo
。然后,您可以将Label
绑定到IDataErrorInfo.Error
媒体资源。添加一点INotifyPropertyChanged
,您的Label
将自动更新。
答案 1 :(得分:0)
如果您想避免在表单上的所有文本框中添加“验证”事件(并且这使得复杂的表单更加复杂),您可以尝试通过表单的OnKeyDown
事件捕获所有输入。在那里进行一些解析(跟踪写入的内容和焦点对象)。这样你就可以在一个地方处理所有事情。