Данные SilverlightАннотации не отображаются на элементе управления - PullRequest
0 голосов
/ 14 июня 2011

Сейчас я пытаюсь показать фиктивное сообщение об ошибке: "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, текстовое поле, которое я передаю в качестве элемента управления, не станет красным, и сообщение не будет отображаться.

Что дает?

Спасибо!

...