protected override void OnValidated(IValidationContext validationContext)
{
bool updatedValidationSummaries = false;
foreach (var validationSummaryInfo in _validationSummaries)
{
var isSummaryUpdateRequired = false;
var lastUpdated = _validationSummariesUpdateStamps.ContainsKey(validationSummaryInfo.Key) ? _validationSummariesUpdateStamps[validationSummaryInfo.Key] : 0L;
isSummaryUpdateRequired = this.IsValidationSummaryOutdated(lastUpdated, validationSummaryInfo.Value.IncludeChildViewModels);
if (!isSummaryUpdateRequired)
{
continue;
}
IValidationSummary validationSummary;
if (validationSummaryInfo.Value.UseTagToFilter)
{
validationSummary = this.GetValidationSummary(validationSummaryInfo.Value.IncludeChildViewModels, validationSummaryInfo.Value.Tag);
}
else
{
validationSummary = this.GetValidationSummary(validationSummaryInfo.Value.IncludeChildViewModels);
}
PropertyHelper.SetPropertyValue(this, validationSummaryInfo.Key, validationSummary, false);
_validationSummariesUpdateStamps[validationSummaryInfo.Key] = validationSummary.LastModifiedTicks;
updatedValidationSummaries = true;
}
if (updatedValidationSummaries)
{
ViewModelCommandManager.InvalidateCommands();
}
base.OnValidated(validationContext);
}
#endregion