现在我正在尝试显示虚假错误消息:"Error Message"
我使用以下代码执行此操作:
SetControlError(Control c,string errorMsg){
Helper helper = new Helper(errorMsg);
c.SetBinding(Control.TagProperty,new Binding("ValidationError"){
Mode = BindingMode.TwoWay,
NotifyOnValidationError = true,
ValidatesOnExceptions = true,
UpdateSourceTrigger = UpdateSourceTrigger.Explicit,
Source = helper
});
c.GetBindingExpression(Control.TagProperty()).UpdateSource();
}
我的帮助程序类看起来像这样:
public class Helper
{
private string _message;
public Helper(string message)
{
if (message == null)
{
throw new ArgumentNullException("message");
}
_message = message;
ThrowValidationError = true;
}
public bool ThrowValidationError
{
get;
set;
}
public object ValidationError
{
get { return null; }
set
{
if (ThrowValidationError)
{
throw new ValidationException(_message);
}
}
}
}
基本上,我使用tag
作为虚拟属性并将错误附加到它。
有问题的是,当我调试代码时,它将在异常点停止并将其显示在代码中抛出的位置旁边。但是,即使将DataAnnotations.ValidationException
设置为User-unhandled
,也不会使我作为控件传递的文本框变为红色并显示消息。
是什么给出了?
谢谢!