New to Telerik UI for Xamarin? Download free 30-day trial

DataForm for Xamarin.iOS: Validation

Validation Modes

TKDataForm supports three validation modes:

  • Immediate - validation will be performed every time the property value is changed.
  • OnLostFocus - validation will be performed when the editor focus is changed to another editor.
  • Delayed - validation will be performed explicitly whenCommit method of TKDataForm is called. This option is used only with commit mode TKDataFormCommitModeDelayed

Here is an example how to set a validation mode to TKDataForm:

this.DataForm.ValidationMode = TKDataFormValidationMode.Immediate;

Validating TKDataFormEntityProperty

There are 2 options to validate a property - using TKDataFormDelegate or using validators that adopt TKDataFormValidator protocol.

Adopting TKDataFormValidator

TKDataFormValidator protocol has 2 required methods - ValidateProperty and ValidationMessage. ValidateProperty method is used to perform the actual validation and return a boolean value indicating if the property value is valid. ValidationMessage method should return a feedback message that will be displayed to the user of your application. After you implement a validator you should set the Validators property of the TKDataFormEntityProperty that will be validated.

In addition, you can take advantage of a few predefined validators, for example TKDataFormEmailValidator, TKDataFormMaximumLengthValidator, TKDataFormNonEmptyValidator, TKDataFormPhoneValidator and TKDataFormRangeValidator.

TKDataFormMinimumLengthValidator passwordValidator = new TKDataFormMinimumLengthValidator (6);
passwordValidator.ErrorMessage = "Password must be at least 6 characters!";
password.Validators = new NSObject[] { passwordValidator };

Validating through TKDataFormDelegate

To validate a property through TKDataFormDelegate you should implement its ValidateProperty that returns a boolean value indicating if the property value is valid:

public override bool ValidateProperty (TKDataForm dataForm, TKEntityProperty property, TKDataFormEditor editor)
{
}

Check for validation errors

When you want to simply check if there are any validation errors in the TKDataForm you can use its HasValidationErrors method.

var hasValidationErrors = dataForm.HasValidationErrors();
In this article