Использование атрибута 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
свойства?