DXValidationProvider Class
Provides data validation management for DevExpress bound and unbound editors.
Namespace: DevExpress.XtraEditors.DXErrorProvider
Assembly: DevExpress.XtraEditors.v24.2.dll
Declaration
Remarks
The DXValidationProvider
component allows you to create various validation rules and associate them with editors (BaseEdit descendants). With the DXValidationProvider
you don’t need to write validation code.
There are two built-in validation rules:
CompareAgainstControlValidationRule
Compares the values of two BaseEdit editors - and determines whether one is less than, equal to or greater than the other.
ConditionValidationRule
Checks whether a BaseEdit editor’s value matches the specified condition (‘BeginsWith’, ‘Between’, ‘IsBlank’, etc.).
You can also implement a custom validation rule. Create a ValidationRule
descendant and override the Validate
method (see the example below).
To associate a validation rule with an editor, use the DXValidationProvider.SetValidationRule method. The DXValidationProvider.GetValidationRule method returns a validation rule associated with the specified editor.
Create Validation Rules at Design-Time
Use the Customize Validation Rules editor to create validation rules at design time and associate them with editors.
Data Validation Modes
By default, automatic data validation is disabled. Use the DXValidationProvider.Validate method to validate data editors.
Set the DXValidationProvider.ValidationMode property to ‘Auto’ to enable automatic data validation.
Error Indication
The editor displays a notification icon if a user enters an invalid value.
The notification icon is hidden once the user enters a valid value and moves the focus to another control or presses Enter (ValidateOnEnterKey).
Clear Validation Errors
Use the SetValidationRule(Control, ValidationRuleBase) method and pass null (Nothing in Visual Basic) as a rule
parameter to clear the validation rule for the specified control.
Access Editors with Invalid Values
Use the DXValidationProvider.InvalidControls property to access data editors with invalid values.
Example
This example demonstrates how to validate data via the DXValidationProvider
component. In this example, validation rules (built-in and custom) are created in code, and associated with editors using the DXValidationProvider.SetValidationRule method.
The CustomValidationRule class represents a custom validation rule that checks whether the editor’s value begins with “Dr.”, “Mr.”, “Mrs.”, “Miss” or “Ms.”.
using DevExpress.XtraEditors.DXErrorProvider;
// Validates the editors when a user presses/clicks the OK button.
dxValidationProvider1.ValidationMode = ValidationMode.Manual;
// ...
ConditionValidationRule containsValidationRule = new ConditionValidationRule();
containsValidationRule.ConditionOperator = ConditionOperator.Contains;
containsValidationRule.Value1 = '@';
containsValidationRule.ErrorText = "Please enter a valid email";
containsValidationRule.ErrorType = ErrorType.Warning;
CompareAgainstControlValidationRule compValidationRule =
new CompareAgainstControlValidationRule();
compValidationRule.Control = notEmptyTextEdit;
compValidationRule.CompareControlOperator = CompareControlOperator.Equals;
compValidationRule.ErrorText = "Please enter a value that equals to the first editor's value";
compValidationRule.CaseSensitive = true;
CustomValidationRule customValidationRule = new CustomValidationRule();
customValidationRule.ErrorText = "Please enter a valid person name";
customValidationRule.ErrorType = ErrorType.Warning;
dxValidationProvider1.SetValidationRule(containsTextEdit, containsValidationRule);
dxValidationProvider1.SetValidationRule(compareTextEdit, compValidationRule);
dxValidationProvider1.SetValidationRule(customTextEdit, customValidationRule);
private void buttonOk_Click(object sender, EventArgs e) {
dxValidationProvider1.Validate();
}
// Implements a custom validation rule.
public class CustomValidationRule : ValidationRule {
public override bool Validate(Control control, object value) {
string str = (string)value;
string[] values = new string[] { "Dr.", "Mr.", "Mrs.", "Miss", "Ms." };
foreach(string val in values) {
if(ValidationHelper.Validate(str, ConditionOperator.BeginsWith,
val, null, null, false)) {
string name = str.Substring(val.Length);
if(name.Trim().Length > 0) return true;
}
}
return false;
}
}