---
title: Object to control data push
summary: Pushes current business-object property values into their bound controls.
status: draft
owner: SAIF documentation team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Binding.Infragistics103
reference_type: embedded
operation_id: OP-BIND-002
trigger: Explicit clsObjectBindManager.DataBind() call, or automatic from OnPreRender when AutoBind = True
---

# Object to control data push

This operation iterates all registered binders and pushes the current value of each bound business-object property into its associated control, refreshing the displayed UI state.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-BIND-002 |
| **Trigger** | Explicit call to `DataBind()`, or automatically from `OnPreRender` when `AutoBind = True` |
| **Inputs** | The manager's current `m_Bindings` list; each binder's `m_BindSource` |
| **Outputs** | Control UI state updated to reflect current business-object property values |
| **Primary components** | `clsObjectBindManager.DataBind`, `clsObjectBinderBase.ObjectToControl` (per concrete binder), `clsObjectBinderBase.GetObjectValueAsString`/`GetObjectValue` |
| **Entry point** | `SAIF.Presentation.Web.Binding.Infragistics103\clsObjectBindManager.vb` |

## Steps

1. Iterate `m_Bindings`; for each binder whose `BindType` is `ObjectToControl` or `TwoWay`, call `Binder.ObjectToControl()`.
2. Each concrete binder's `ObjectToControl()` reads the property value via `GetObjectValueAsString`/`GetObjectValue` (reflection + `TypeDescriptor`/`PropertyDescriptor`, with optional padding applied per `UsePadding`/`ControlPadding`) and assigns it to the appropriate control property/selection (e.g., `TextBox.Text`, `DropDownList.Items.FindByValue`, grid data source).
   - On failure: if the target property cannot be converted (`NotSupportedException`), `GetObjectValueAsString` returns `Nothing` and the control is left unset; no exception propagates to the caller.*
3. No business-rule IDs or SQL/table references apply to this step sequence — this is pure UI projection.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([DataBind called]) --> Iterate[Iterate m_Bindings]
	Iterate --> Check{BindType is ObjectToControl or TwoWay?}
	Check -->|No| Next[Skip binder]
	Check -->|Yes| Read[ObjectToControl: read property via reflection]
	Read --> Pad{UsePadding?}
	Pad -->|Yes| ApplyPad[Apply ControlPadding]
	Pad -->|No| Assign[Assign value to control]
	ApplyPad --> Assign
	Assign --> Next
	Next --> Done{More binders?}
	Done -->|Yes| Iterate
	Done -->|No| EndOk([Controls refreshed])
```

## Failure and edge-case behavior
- A property value that fails conversion leaves the target control unchanged rather than raising an exception to the page.*

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

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