Я использую FluentValidation
с IDataErrorInfo
, и я валидатор определяется следующим образом:FluentValidation не работает для нулевой собственности
public class StsInfoValidator : AbstractValidator<StsInfo>
{
public StsInfoValidator()
{
RuleFor(x => x.SomeProperty).Cascade(CascadeMode.StopOnFirstFailure)
.NotNull().NotEmpty().WithMessage("SomeProperty is required.");
}
}
Однако, переходя в null
собственности, кажется, не вызывает валидатор:
#region IDataErrorInfo
public string this[string columnName]
{
get
{
var validator = new StsInfoValidator();
if (columnName.Equals("SomeProperty"))
{
// SomeProperty below is null
if (validator.Validate(this, SomeProperty).Errors.Any())
return validator.Validate(this, CampusNexusApiServer).Errors.FirstOrDefault().ErrorMessage;
else
{
validator = null;
return string.Empty;
}
}
return string.Empty;
}
}
#endregion
Есть FallbackValue или TargetNullValue для привязки, которые удовлетворяют сценарию при возврате привязки Null Также вы можете объяснить немного больше, что вы подразумеваете под Null P roperty – Versatile