private void SetupValidation()
{
var validationRules = new ValidationHelper();
// Simple properties
validationRules.AddRule(nameof(StringProperty),
() =>
RuleResult.Assert(!string.IsNullOrEmpty(StringProperty),
"StringProperty cannot be null or empty string"));
validationRules.AddRule(nameof(IntProperty),
() => RuleResult.Assert(IntProperty > 0, "IntProperty should be greater than zero."));
// Dependant properties
validationRules.AddRule(nameof(RangeStart),
nameof(RangeEnd),
() => RuleResult.Assert(RangeEnd > RangeStart, "RangeEnd must be grater than RangeStart"));
// Long-running validation (simulates call to a web service or something)
validationRules.AddRule(
nameof(StringProperty2),
() =>
{
SyncValidationRuleExecutedAsyncroniouslyDelegate?.Invoke();
return RuleResult.Assert(!string.IsNullOrEmpty(StringProperty2),
"StringProperty2 cannot be null or empty string");
});
Validation = validationRules;
DataErrorInfoValidationAdapter = new NotifyDataErrorInfoAdapter(Validation);
}