Now that we've had a good look at the two validation interfaces, the data annotation attributes and the ability to validate with different levels, let's take a look at how we can amalgamate these different techniques.
Let's create a BaseNotifyValidationModelExtended class by copying what we have in our BaseNotifyValidationModel class, and incorporating these following new additions. First, we need to add some extra using directives to the ones used in the previous implementation:
using System.Collections.Specialized;
using System.ComponentModel.DataAnnotations;
using CompanyName.ApplicationName.DataModels.Enums;
Next, we need to add our validationLevel field:
private ValidationLevel validationLevel = ValidationLevel.Full;
We need to add a constructor, in which we attach the ExternalErrors_CollectionChanged event handler to the CollectionChanged event of the ExternalErrors collection property, as we did earlier:
protected BaseNotifyValidationModelExtended...