Silverlight DataAnnotations未显示在Control上

时间:2011-06-13 20:12:25

标签: c# silverlight silverlight-4.0 data-annotations

现在我正在尝试显示虚假错误消息:"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,也不会使我作为控件传递的文本框变为红色并显示消息。

是什么给出了?

谢谢!

0 个答案:

没有答案