DXValidationProvider.GetValidationRule(Control) Method
Returns a validation rule associated with the specified BaseEdit descendant.
Namespace: DevExpress.XtraEditors.DXErrorProvider
Assembly: DevExpress.XtraEditors.v24.2.dll
Declaration
[DefaultValue(null)]
[DXCategory("Data")]
public virtual ValidationRuleBase GetValidationRule(
Control control
)
Parameters
Name | Type | Description |
---|---|---|
control | Control | A BaseEdit descendant. |
Returns
Type | Default | Description |
---|---|---|
DevExpress.XtraEditors.DXErrorProvider.ValidationRuleBase | null | A DevExpress.XtraEditors.DXErrorProvider.ValidationRuleBase descendant that represents the validation rule associated with the editor. null (Nothing in Visual Basic) if no validation rule is associated with the specified editor. |
Remarks
To associate a validation rule with a BaseEdit descendant, use the DXValidationProvider.SetValidationRule method.
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;
}
}