---
title: Dual binding (bind one object, validate another)
summary: Display one object on a control while validating a different object/property pair.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Binding.Infragistics111
reference_type: package
operation_id: OP-BIND-009
trigger: Application binds a control to a display object while validating a different object
---

# Dual binding (bind one object, validate another)

Display one object on a control while validating a different object/property pair.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-BIND-009 |
| **Trigger** | Application binds a control to a display object while validating a different object |
| **Inputs** | Control, `CustomBindingControls` type selector, bind object + property, validation object + property, optional args, bind type |
| **Outputs** | A binder with distinct bind and validation sources |
| **Primary components** | `clsObjectBindManager.AddDualBinder`, `clsObjectBinderBase.SetDualBinding`, `clsObjectBinderBase.GetErrors` |
| **Entry point** | `SAIF.Presentation.Web.Binding.Infragistics111/clsObjectBinderbase.vb` |

## Steps

1. Branch on the `CustomBindingControls` value (`TextBox`, `DropDownList`, `SAIFWebMaskEdit`, `WebDateTimeEdit`, `WebTextEdit`, `WebMaskEdit`) to instantiate the matching binder. ([BR-BIND-058](../business-rules.md#br-bind-058-dual-binding-limited-to-six-control-types))
2. Call `SetDualBinding`, which sets the dual-binding flag and records the bind source/property and the validation source/property separately. ([BR-BIND-059](../business-rules.md#br-bind-059-dual-binding-separates-bind-and-validation-pairs))
3. During validation, `GetErrors` uses the **validation** property and object rather than the bind pair for a dual binder. ([BR-BIND-031](../business-rules.md#br-bind-031-dual-binder-validates-its-validation-pair))

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([AddDualBinder]) --> S1[Instantiate binder by CustomBindingControls type]
	S1 --> S2[SetDualBinding: record bind pair and validation pair separately]
	S2 --> S3[Register binder]
	S3 --> End([Control displays bind object,<br>validates validation object])
```

## Failure and edge-case behavior

- Only the six control types in `CustomBindingControls` can be dual-bound; other control types have no `AddDualBinder` overload ([BR-BIND-058](../business-rules.md#br-bind-058-dual-binding-limited-to-six-control-types)).

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.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.

## Sources
- SAIF.Presentation.Web.Binding.Infragistics111/clsObjectBinderbase.vb
