Instanzvalidierung

Implementierung einer Instanzvalidierung

Eine Instanzvalidierung wird benutzt, wenn ein kontextlose Validierung ausgeführt werden soll. Der Anschluss ist in dem ViewModel-Validator. Anstatt eine Regel im Konstruktor anzugeben, wird eine Methode aus der Basisklasse (FluentViewModelValidator) überschrieben. Mithilfe von ValidateInstance(viewmodel, validationcontext) kann die Validierung ausgeführt werden.

Die Meldungen werden manuell vom Entwickler dem Kontext hinzugefügt. Standardmäßig werden sie in der ValidationSummary am unteren Rand des Dialogschritts angezeigt. Man kann die Meldung aber auch an eine Property binden, wodurch sie an allen gebundenen Controls erscheinen würde.

public class StepViewModelValidator : FluentViewModelValidator<StepViewModel>
{
	public StepViewModelValidator()
	{ // Andere Validierungsregeln }

	protected override void ValidateInstance(StepViewModel instance, 
             IInstanceValidationContext<StepViewModel> context)
	{
              // Ohne Kontext (Meldung im Popup des DS)
              context.AddFailure(FailureLevel.Error, "Fehler im DS!");

              // Mit Kontext (Meldung am Control mit Bindung StepViewModel.Selection)
              context.AddFailure(FailureLevel.Error, x => x.Selection, "Selection-Fehler!");
	
              base.ValidateInstance(instance, context);
	}
}
Cookie Consent mit Real Cookie Banner