【发布时间】:2012-06-05 20:34:57
【问题描述】:
我有一些使用掩码的验证代码以及文本框上的 PreviewTextInput 和 PreviewKeyDown 事件。当我手动更改文本框中的值时,验证工作完美。当我以编程方式设置值时,验证不会开始,直到我单击框并删除一个字符并重新添加它,手动触发上述一个或两个事件。
有没有办法手动触发这些事件中的任何一个以使验证生效?
我尝试过类似的东西:
this.TextBox.RaiseEvent(this.TextBox.PreviewTextInput);
但似乎没有任何效果。我也找不到匹配的类型。欢迎任何想法。
我正在使用的基于掩码的验证代码可以在这里看到:How to define TextBox input restrictions?
【问题讨论】:
-
我不确定您要实现什么,但您可以将文本绑定模式修改为UpdateSourceTrigger=Explicit。这样您就可以准确地告诉 WPF 何时更新源,这应该 也更新验证。但是为什么不使用内置验证呢?
-
我不认为伪造文本框事件是解决这里问题的正确方法。
-
我认为是,除非您有其他建议。我没有使用真正的验证。我正在使用掩蔽。我的代码在这里:stackoverflow.com/questions/1103765/…
标签: c# wpf textbox raiseevent