---
title: SAIF.Presentation.Web.Binding.Infragistics111 operations and processes
summary: Business and technical operations supported by this library.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Binding.Infragistics111
reference_type: package
---

# SAIF.Presentation.Web.Binding.Infragistics111 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/`. This library performs no database access, so the Tables and SQL columns are not applicable for any operation.

## Operation catalog
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
| --- | --- | --- | --- | --- | --- | --- | --- |
| [Register a binding](operations/register-a-binding.md) | Attach a control to a business-object property so the two can move data and be validated together. | Application page setup (typically `Configure` or `Page_Load`) | A control, a business object (or collection), the target property name, an optional `…BindingArgs`, an optional `UseEvents` flag, an optional `BindTypes` value (default `TwoWay`) | A concrete binder appended to `m_Bindings`; the validation object registered in `m_ValidationObjects` | [BR-BIND-001](business-rules.md#br-bind-001-binder-selected-by-overload-resolution), [BR-BIND-004](business-rules.md#br-bind-004-validation-object-registered-once-by-key) | — | — |
| [Initialize binders (page load)](operations/initialize-binders-page-load.md) | Restore the manager's persisted state and wire up each binder's control change-event handlers at the start of the page lifecycle. | ASP.NET `Load` event of the manager control | `ViewState("AutoBind")`, the registered binders | Restored `AutoBind` setting; control change-event handlers wired up | [BR-BIND-006](business-rules.md#br-bind-006-autobind-persists-via-viewstate), [BR-BIND-007](business-rules.md#br-bind-007-change-event-subscription-requires-useevents) | — | — |
| [Push object values into controls (object to control)](operations/push-object-values-into-controls.md) | Populate bound controls from the current business-object property values. | `binder.DataBind()` explicit call, or automatically on `PreRender` when `AutoBind` is `True` | Registered binders and their bind sources | Controls populated with business object values | [BR-BIND-010](business-rules.md#br-bind-010-databind-and-bindtoobject-respect-bind-type), [BR-BIND-011](business-rules.md#br-bind-011-nothing-bind-source-skips-data-movement) | — | — |
| [Pull control values back into objects (control to object)](operations/pull-control-values-into-objects.md) | Write edited control values back onto the bound business-object properties. | An explicit `BindToObject()` call, the first step of `Validate()` / `RefreshValidation()`, or a control change event when `UseEvents` is `True` | `inAllControls` flag; the bound controls' current values | Updated business object properties | [BR-BIND-019](business-rules.md#br-bind-019-bindtoobject-respects-inallcontrols-flag), [BR-BIND-024](business-rules.md#br-bind-024-grid-row-matched-by-key-property) | — | — |
| [Validate bound objects and report errors](operations/validate-bound-objects-and-report-errors.md) | Push pending control edits, trigger business-object rule evaluation, harvest and aggregate error messages, and re-style controls. | `binder.Validate()` (or `RefreshValidation()`), typically on Save | Registered binders, registered validation objects | `Boolean` overall validity; populated `ErrorLabel` / `SAIFMessage`; controls re-styled; `FirstControlWithError` set | [BR-BIND-027](business-rules.md#br-bind-027-validation-writes-back-before-checking), [BR-BIND-029](business-rules.md#br-bind-029-reading-isvalid-triggers-rule-evaluation), [BR-BIND-034](business-rules.md#br-bind-034-duplicate-messages-reported-once) | — | — |
| [Validate a grid collection](operations/validate-a-grid-collection.md) | Validate every row (and hierarchical child row) of a bound grid collection and highlight invalid cells. | `Validate()` reaching a grid binder | The bound collection, the grid's bands and columns | Cell-level red highlighting, collected error messages, activated first invalid cell | [BR-BIND-044](business-rules.md#br-bind-044-grid-validation-resets-formatting-first), [BR-BIND-048](business-rules.md#br-bind-048-grid-column-keys-map-to-property-names) | — | — |
| [Run a custom validator](operations/run-a-custom-validator.md) | Run application-supplied validation logic that participates in the same error pipeline as property-level errors. | `Validate()` / `RefreshValidation()` reaching a custom validator | The validation target object, optionally a key property, and a `PropertyValidator` or `CustomValidator` delegate | Messages appended to `ControlErrors`; the binder's error flag | [BR-BIND-051](business-rules.md#br-bind-051-property-validator-receives-bind-source-and-error-list), [BR-BIND-053](business-rules.md#br-bind-053-object-validator-returns-isvalid) | — | — |
| [Re-point a binder at a new data source](operations/repoint-a-binder-at-a-new-data-source.md) | Rebind an existing grid or drop-down control to a new collection after a postback, without re-registering it through `Add`. | Application replaces a grid's or drop-down's collection after a postback | The control instance and the new data source | The binder's bind source replaced and the control rebound | [BR-BIND-055](business-rules.md#br-bind-055-update-matches-binder-by-class-name), [BR-BIND-057](business-rules.md#br-bind-057-re-pointed-binder-is-re-added-and-rebinds) | — | — |
| [Dual binding (bind one object, validate another)](operations/dual-binding.md) | Display one object on a control while validating a different object/property pair. | Application binds a control to a display object while validating a different object | Control, `CustomBindingControls` type selector, bind object + property, validation object + property, optional args, bind type | A binder with distinct bind and validation sources | [BR-BIND-058](business-rules.md#br-bind-058-dual-binding-limited-to-six-control-types), [BR-BIND-059](business-rules.md#br-bind-059-dual-binding-separates-bind-and-validation-pairs) | — | — |
| [Look up a binder by control](operations/look-up-a-binder-by-control.md) | Find the binder registered for a specific control so it can be rebound or inspected directly. | Application needs to rebind or inspect a single control | The control instance | The matching `clsObjectBinderBase`, or `Nothing` | [BR-BIND-060](business-rules.md#br-bind-060-binder-lookup-by-exact-uniqueid) | — | — |

## Process flow diagram
The following diagram visualizes the primary operational flow across operations: a control is registered, initialized, populated, edited, written back, and validated.

```mermaid
flowchart TD
	Start([Page Configure/Load]) --> A["Register a binding<br>Add overload registers a binder"]
	A --> B["Initialize binders (page load)<br>OnLoad wires change events"]
	B --> C["Push object values into controls (object to control)<br>DataBind / AutoBind pushes values"]
	C --> D[User edits control]
	D --> E{UseEvents?}
	E -->|Yes| F[Change event runs ControlToObject immediately]
	E -->|No| G["Pull control values back into objects (control to object)<br>BindToObject on demand"]
	F --> H["Validate bound objects and report errors<br>Validate aggregates errors"]
	G --> H
	H --> I{Grid binder?}
	I -->|Yes| J[Validate a grid collection]
	I -->|No, custom validator| K[Run a custom validator]
	J --> L([FormattedErrorMessage surfaced])
	K --> L
	H --> L
```

## Inherited operations and processes

Operations in this section originate from base classes provided by dependency framework libraries. They are inherited or delegated, not implemented in this library.

### From `clsBusinessBase` (`SAIF.Framework.Core`)

| Operation | Intent | Provided by | Origin | Embedded in |
| --- | --- | --- | --- | --- |
| Evaluate business rules and populate broken-rules state | Runs the object's registered rules through `clsRulesManager` and sets `IsValid` / `IDataErrorInfo` messages accordingly.† | `clsBusinessBase` | `SAIF.Framework.Core` | [Validate bound objects and report errors](operations/validate-bound-objects-and-report-errors.md) |

> **Origin**: This operation is defined in `SAIF.Framework.Core` / `clsBusinessBase` and inherited or delegated by this component. Its step-by-step logic is embedded inline (with `> Origin` callouts) in the consuming operation's detail page.

## Failure and edge-case behavior
- `RefreshValidation()` skips business-object rule re-evaluation, so it can surface stale results if called without a prior `Validate()` in the same postback ([BR-BIND-043](business-rules.md#br-bind-043-refreshvalidation-skips-bind-source-revalidation)).
- `clsObjectBindManager.Update` re-registers an already-registered binder, growing `m_Bindings` on every call and causing duplicate validation of the same binder over repeated updates.*
- `clsTextBoxBinder.ControlToObject` and grid validation both swallow conversion/cast exceptions silently, so malformed input or non-`IDataErrorInfo` objects do not crash the page but also do not surface a diagnostic ([BR-BIND-021](business-rules.md#br-bind-021-non-string-target-uses-convertchangetype), [BR-BIND-046](business-rules.md#br-bind-046-non-idataerrorinfo-objects-skipped-silently)).
- `FirstRowWithError` / `FirstColumnWithError` are declared on both the manager and `clsUltraGridBinder`, but their assignments are commented out (noted as avoiding a circular reference), so both properties always remain `Nothing`.*

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

> **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. Statements marked with † were retrieved from dependency library documentation via the Legends CLI RAG service. They describe inherited behavior from the indicated origin library and should be verified if the dependency version changes.

## Sources
- SAIF.Presentation.Web.Binding.Infragistics111/clsObjectBindManager.vb
- SAIF.Presentation.Web.Binding.Infragistics111/clsObjectBinderbase.vb
- SAIF.Presentation.Web.Binding.Infragistics111/clsCustomValidator.vb
- SAIF.Presentation.Web.Binding.Infragistics111/InfragisticsClassicControls/clsUltraGridBinder.vb
