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

# clsWebComboBinder

This binder connects the classic Infragistics v10.3 `WebCombo` selector to the library's page-level binding manager so a bound object's property can drive the selected row and later receive the chosen `DataValue`. It represents the legacy `InfragisticsClassicControls` combo implementation rather than the newer editor-control generation.

## Purpose
- Synchronize a classic `WebCombo` selection with a bound business-object property.
- Resolve object-to-control updates by locating the combo row whose value matches the bound property.
- Optionally react to `SelectedRowChanged` so user selections are written back 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 |
| --- | --- | --- |
| BindProperty | `Property BindProperty() As String` | Names the business-object property whose value is mirrored in the combo selection. |
| BindSource | `Property BindSource() As Object` | Supplies the business object being edited and the validation source used by inherited error logic. |
| WebCombo | `Property WebCombo() As WebCombo` | Attaches the classic combo control instance and registers it with the base binder infrastructure. |
| Init() | `Overrides Sub Init()` | Hooks `SelectedRowChanged` for control-to-object and two-way bindings when event-driven synchronization is enabled. |
| ObjectToControl() | `Overrides Function ObjectToControl() As Boolean` | Looks up the combo item matching the bound property value and selects its row in the control. |

## 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()` uses `FindByValue` against the bound property's string value, then marks the resolved row as both `SelectedRow` and `Selected = True`.
- `ControlToObject()` persists `m_cmb.DataValue`, so the object receives the combo's configured data value rather than display text.
- If no combo row matches the bound value, the binder leaves the existing control selection unchanged.

## Constraints and usage notes
- The bound property value must correspond to a `WebCombo` value key for object-to-control selection to succeed.
- This binder exposes no public constructors beyond the implicit default constructor, so callers configure it through property assignment.
- Validation formatting and error collection come from inherited `clsObjectBinderBase` behavior rather than combo-specific logic.

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