Использование атрибута ValidationAttribute с вложенным классом

У меня есть следующий класс в моей ViewModel:

public class ParentClass
{
    public string Selection { get; set; }

    [MyValidation]
    public string ParentProperty { get; set; }

    public NestedClass Nested { get; set; }

    public class NestedClass
    {
        [MyValidation] //this doesn't have context of ParentClass inside MyValidation attribute
        public string NestedProperty { get; set; }
    }
}

и следующий атрибут ValidationAttribute:

public class MyValidation : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        ParentClass parentClass = (ParentClass)validationContext.ObjectInstance;

        if (parentClass.Selection.Equals("New"))
        {
            return new ValidationResult("Required");
        }

        return ValidationResult.Success;
    }
}

[MyValidation] правильно работает на ParentClass свойства. Тем не менее, когда я ставлю его на NestedClass собственность, я получаю ошибку:

InvalidCastException: Unable to cast object of type 'NestedClass' to type 'ParentClass'.

Есть ли способ получить доступ к ParentClass.Selection значение внутри [MyValidation] все еще будучи в состоянии поставить [MyValidation] на NestedClass свойства?

0 ответов

Другие вопросы по тегам