---
title: SAIF.Presentation.Web.Binding.Infragistics103 operations and processes
summary: Business and technical operations supported by this library.
status: draft
owner: SAIF documentation team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Binding.Infragistics103
reference_type: embedded
---

# SAIF.Presentation.Web.Binding.Infragistics103 operations and processes

This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under `operations/`.

## Operation catalog
| Operation | Intent | Trigger | Inputs | Outputs | Rules |
| --- | --- | --- | --- | --- | --- |
| [Register and initialize a control binding](operations/register-control-binding.md) | Register a control ↔ business-object property binding | Page/control developer code calling an `Add()` overload | Control instance, bound object/collection, key property name, optional `BindTypes`/`UseEvents`/args | New binder appended to `m_Bindings`; entry added to `m_ValidationObjects` | — |
| [Object to control data push](operations/object-to-control-push.md) | Push business-object values into bound controls | Explicit `DataBind()` call, or automatic from `OnPreRender` when `AutoBind = True` | Current `m_Bindings`, each binder's `m_BindSource` | Control UI state updated to reflect object property values | — |
| [Control to object data pull](operations/control-to-object-pull.md) | Pull control values back into business-object properties | Explicit `BindToObject()` call, or as the first step of `Validate()`/`RefreshValidation()` | `inAllControls` flag, each binder's current control value | Business-object property values updated from control state | — |
| [Validate bound controls](operations/validate-bound-controls.md) | Aggregate validation errors and apply error/valid formatting | Explicit `Validate()`/`RefreshValidation()` call, typically before save/submit | `m_Bindings`, `m_ValidationObjects` | Overall valid/invalid result, populated error collection, control CSS formatting, `ErrorLabel`/`SAIFMessage` text | [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), [BR-BIND-003](business-rules.md#br-bind-003-multi-line-textbox-error-styling-differs-from-single-line), [BR-BIND-004](business-rules.md#br-bind-004-first-error-control-precedence-during-formatting), [BR-BIND-005](business-rules.md#br-bind-005-duplicate-error-message-suppression) |
| [Custom validator registration](operations/custom-validator-registration.md) | Register a validation rule not tied 1:1 to a control binding | Page code calling `AddCustomValidator(target)`, `AddCustomValidator(target, keyProperty, propertyValidator)`, or `AddCustomValidator(control, target, validationMethod)` | Bound target object, optional key property + `PropertyValidator` delegate, optional control + `CustomValidator` delegate | A `clsCustomValidator` binder appended via `AddBinder()` | — |
| [Dual binder registration](operations/dual-binder-registration.md) | Bind a control's displayed value to one object/property while validating against another | Page code calling `AddDualBinder(control, controlType, bindObject, bindProperty, validationObject, validationProperty, [args], [bindType])` | Control, `CustomBindingControls` enum value, bind object/property, validation object/property, optional args | Configured binder appended via `AddBinder()` with dual-binding state set | — |
| [Grid/DDL live data-source update](operations/grid-ddl-data-source-update.md) | Refresh a grid or dropdown's data source after initial binding | Explicit `Update(UltraWebGrid, IEnumerable)`, `Update(WebDataGrid, IEnumerable)`, or `Update(DropDownList, Object)` call | Control instance, new `IEnumerable` data source | Matching binder's `BindSource` updated; control refreshed via `ObjectToControl()` | — |

## Process flow diagram
The following diagram visualizes the primary operational flow across operations.

```mermaid
flowchart TD
	Start([Page_Load]) --> Register[Register control binding via Add]
	Register --> Push[DataBind: object to control push]
	Push --> UserEdits[User edits controls]
	UserEdits --> Submit{Submit/Save clicked?}
	Submit -->|Yes| Validate[Validate: control to object pull + error check]
	Validate --> Valid{All bindings valid?}
	Valid -->|Yes| EndOk([Proceed with save])
	Valid -->|No| EndErr([Display aggregated errors])
	Submit -->|No, data source changed| Update[Grid/DDL data-source update]
	Update --> Push
```

## Inherited operations and processes

No inherited operations were found — this library's operations are implemented locally and the only cross-library call is the bound business object's own `IDataErrorInfo`/`IsValid` members (defined in `SAIF.BOF.Framework`, which is excluded/undocumented for this run and treated as an external framework call, not traced further).*

## Failure and edge-case behavior
- A target property that cannot be converted during `ObjectToControl()` (`NotSupportedException`) leaves the control unset; no exception propagates to the caller.*
- `clsTextBoxBinder.ControlToObject` silently swallows type-conversion exceptions (empty `Catch` block); a failed conversion leaves the object property unchanged and is not surfaced.*
- `Update(UltraWebGrid, IEnumerable)`, `Update(WebDataGrid, IEnumerable)`, and `Update(DropDownList, Object)` re-register the found binder via `AddBinder()`, which always appends rather than replaces an entry in `m_Bindings` — a potential duplicate-binder side effect on repeated data-source updates.*

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with `**` could not be confirmed; treat as unknown until verified.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [API reference](api/index.md)

## Sources
- `SAIF.Presentation.Web.Binding.Infragistics103\clsObjectBindManager.vb`
- `SAIF.Presentation.Web.Binding.Infragistics103\clsObjectBinderbase.vb`
- `SAIF.Presentation.Web.Binding.Infragistics103\clsCustomValidator.vb`
