---
title: clsWebMaskEditBinder
summary: API reference for clsWebMaskEditBinder.
status: draft
owner: SAIF documentation team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Binding.Infragistics103
reference_type: embedded
---

# clsWebMaskEditBinder

This binder adapts the classic Infragistics v10.3 `WebMaskEdit` control for standard masked-entry scenarios, letting the binding manager choose whether the control contributes text, raw text, or typed values back to a business object. It is the non-SAIF legacy `InfragisticsClassicControls` mask-edit implementation, parallel to but distinct from the SAIF-specific counterpart.

## Purpose
- Synchronize a classic `WebMaskEdit` control with a bound property using the control surface selected by `ControlBindProperty`.
- Convert edited mask values back into string, integer, decimal, or date targets according to `MaskEditTargetType`.
- Optionally react to `ValueChange` so edits are persisted immediately when `UseEvents` is enabled.

## Context
- Namespace: `SAIF.Presentation.Web.Binding`
- Assembly/package: `SAIF.Presentation.Web.Binding.Infragistics103` (embedded/bundled as source, not independently packaged)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| MaskEditTargetType | `Property MaskEditTargetType() As ObjectDataType` | Declares which target data type the binder should produce when pulling values out of the control. |
| BindProperty | `Property BindProperty() As String` | Names the business-object property that receives and supplies the masked value. |
| BindSource | `Property BindSource() As Object` | Supplies the business object being edited and the validation source used by inherited error logic. |
| MaskedEdit | `Property MaskedEdit() As WebMaskEdit` | Attaches the classic mask-edit control instance and registers it with the base binder infrastructure. |
| Init() | `Overrides Sub Init()` | Hooks `ValueChange` for control-to-object and two-way bindings when event-driven synchronization is enabled. |
| ObjectToControl() | `Overrides Function ObjectToControl() As Boolean` | Pushes the bound property into the control's `Text`, `Value`, or `RawText` member according to `ControlBindProperty`. |
| New() | `Sub New()` | Defaults the control-side projection to `ControlBindProperty.Text`. |

## Inherited public members

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| ContainsError | `ReadOnly Property ContainsError As Boolean` | Set by GetErrors()/validation processing; when true, Validate()/RefreshValidation() counts this binder toward the overall invalid result and its control receives error-state CSS via SetControlFormat(). | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| IsDualBinding | `ReadOnly Property IsDualBinding As Boolean` | When true, ObjectToControl()/ControlToObject() read and write the display object/property while GetErrors() checks a separate validation object/property, as configured by AddDualBinder(). | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| ControlPadding | `Property ControlPadding As PadArgs` | When UsePadding is enabled, pads or trims the value written to the control during ObjectToControl(), so fixed-width display formatting is applied without changing the underlying object value. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| ObjectPadding | `Property ObjectPadding As PadArgs` | When UsePadding is enabled, pads or strips padding from the value written back to the bound property during ControlToObject(), so stored data is not polluted with display-only padding characters. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| UsePadding | `Property UsePadding As Boolean` | Enables the ControlPadding/ObjectPadding transforms during ObjectToControl()/ControlToObject(); when false, values pass through unpadded regardless of the padding arguments configured. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| UseEvents | `Property UseEvents As Boolean` | When true, Init() wires the control's native change event so a user edit immediately calls ControlToObject() instead of waiting for an explicit BindToObject()/Validate() call. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| ControlErrors | `ReadOnly Property ControlErrors As ArrayList` | Holds the error text GetErrors() collects from the bound object's IDataErrorInfo implementation; Validate() aggregates these strings into the consolidated ErrorLabel/SAIFMessage output. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| BindType | `Property BindType As BindTypes` | Determines which of ObjectToControl()/ControlToObject() actually run during DataBind()/BindToObject(), controlling whether this binder is push-only, pull-only, both, or validation-only. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| FormControl | `Overridable Property FormControl As WebControl` | Setting this property runs ProcessControl, which applies binder-specific control setup (event wiring readiness, CSS baseline) before the control participates in binding and validation passes. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| FormControlID | `Overridable ReadOnly Property FormControlID As String` | Supplied to Update() and error-focus logic to locate this binder's control instance on the page without holding a direct control reference. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| Init() | `MustOverride Sub Init()` | Called once during AddBinder() registration; each concrete binder overrides this to hook the native control event needed for event-driven ControlToObject() and to perform any control-specific setup. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| ObjectToControl() | `MustOverride Function ObjectToControl() As Boolean` | Invoked by DataBind() for binders configured as ObjectToControl/TwoWay; each concrete binder overrides this to translate the bound property's value into the control-specific display state. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| ControlToObject() | `Protected Friend MustOverride Sub ControlToObject()` | Invoked by BindToObject() for binders configured as ControlToObject/TwoWay; each concrete binder overrides this to convert the control's current value back into the bound property's type. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| SetControlFormat(inValid As Boolean) | `Protected Friend Overridable Sub SetControlFormat(inValid As Boolean)` | Called by Validate()/RefreshValidation() after error collection; sets the control's CssClass to the valid/error color per [BR-BIND-001](../../business-rules.md#br-bind-001-error-css-suppression-for-protected-fields), [BR-BIND-002](../../business-rules.md#br-bind-002-gridlist-controls-exempt-from-cell-level-errorvalid-css), and [BR-BIND-003](../../business-rules.md#br-bind-003-multi-line-textbox-error-styling-differs-from-single-line), giving the reader a visual cue of validation state. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| GetErrors() | `Protected Friend Overridable Sub GetErrors()` | Reads the bound object's IDataErrorInfo.Item(property) during Validate()/RefreshValidation() and appends any non-empty message to ControlErrors, driving both ContainsError and the consolidated error display. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| GetObjectValueAsString(inBizObject, inPropertyName) | `Function GetObjectValueAsString(inBizObject As Object, inPropertyName As String) As String` | Used by ObjectToControl() to fetch the bound property's current value as display-ready text, applying ObjectPadding/ControlPadding first when UsePadding is enabled. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| GetObjectValue(inBizObject, inPropertyName) | `Function GetObjectValue(inBizObject As Object, inPropertyName As String) As Object` | Used by ObjectToControl() and type-sensitive binders to fetch the bound property's value in its native CLR type, before any control-specific conversion or formatting. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| SetObjectValueAsString(inBizObject, inPropertyName, inValue) | `Protected Function SetObjectValueAsString(inBizObject As Object, inPropertyName As String, inValue As String) As Boolean` | Used by ControlToObject() to write a control-derived string back onto the bound property, applying padding/trim rules first when UsePadding is enabled, so the object receives a correctly formatted value. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| SetObjectValue(inBizObject, inPropertyName, inValue) | `Protected Function SetObjectValue(inBizObject As Object, inPropertyName As String, inValue As Object) As Boolean` | Used by ControlToObject() to write a converted, strongly typed value back onto the bound property, bypassing string formatting for binders that perform their own type conversion. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| ValidationKey | `Friend Overridable ReadOnly Property ValidationKey As String` | Computed by AddBinder() to key the bound object into m_ValidationObjects per [BR-BIND-006](../../business-rules.md#br-bind-006-validation-key-derivation-for-saif-framework-objects), ensuring repeated Validate() passes re-check the correct distinct object. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |
| IsSAIFFrameWorkObject | `Friend Overridable ReadOnly Property IsSAIFFrameWorkObject(Optional inObj As Object) As Boolean` | Detects SAIF framework objects by walking the CLR base-type chain for `clsBusinessBase`/`clsBusinessCollectionBase`. | `SAIF.Presentation.Web.Binding.Infragistics103` — `clsObjectBinderBase` |

## Behavioral notes
- `ObjectToControl()` branches across `Text`, `Value`, and `RawText`, so caller configuration determines which control member is authoritative during display updates.
- `ControlToObject()` converts control content according to `MaskEditTargetType`, including underscore-stripping decimal parsing and typed conversions for date and integer targets.
- String targets are written with `SetObjectValueAsString`, using the trimmed control text rather than the raw underlying value.

## Constraints and usage notes
- Choose `MaskEditTargetType` to match the target property type; the binder uses direct VB conversions such as `CDate`, `CDec`, and `CInt`.
- `m_PadLength`, `m_PadCharacter`, and `m_PadDirection` are declared but not used by binder-local logic; padding behavior comes from inherited base-class services instead.
- Validation formatting and error collection come from inherited `clsObjectBinderBase` behavior rather than mask-specific logic.

## Sources
- `SAIF.Presentation.Web.Binding.Infragistics103\InfragisticsClassicControls\clsWebMaskEditBinder.vb`
- `SAIF.Presentation.Web.Binding.Infragistics103\clsObjectBinderbase.vb`
