clsObjectBinderBase¶
clsObjectBinderBase is the MustInherit abstract base every concrete binder derives from. It defines the three-method binding contract (Init, ObjectToControl, ControlToObject) that clsObjectBindManager calls uniformly across all 24 concrete binders, and centralizes the reflection-based get/set helpers, padding support, IDataErrorInfo-driven error harvesting, and CSS/color error-state formatting that every binder shares.
Purpose¶
- Define the
Init/ObjectToControl/ControlToObjectcontract that letsclsObjectBindManagertreat every control-specific binder uniformly. - Provide shared reflection get/set (
GetObjectValueAsString,SetObjectValueAsString) so concrete binders do not each reimplementTypeDescriptor/TypeConverteraccess (BR-BIND-012). - Detect SAIF BOF business objects by base-class name and compute each binder's validation-registration key (BR-BIND-004, BR-BIND-061).
- Harvest and format validation errors from
IDataErrorInfo, and apply consistent error/valid control styling (BR-BIND-031–BR-BIND-040). - Support dual binding — a distinct validation object/property separate from the bind object/property.
Context¶
- Namespace:
SAIF.Presentation.Web.Binding - Assembly/package:
SAIF.Presentation.Web.Binding.Infragistics111(ILMerged intoSAIF.Presentation.Web.Infragistics111.dll)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
| Init | Public MustOverride Sub Init() |
Subscribes the control's change event when UseEvents is True and the bind type calls for write-back (BR-BIND-007, BR-BIND-008). Overrides clsObjectBinderBase.Init. |
| ObjectToControl | Public MustOverride Function ObjectToControl() As Boolean |
Pushes the bind source value into the control. Overrides clsObjectBinderBase.ObjectToControl. |
| ControlToObject | Public MustOverride Function ControlToObject() As Boolean |
Pulls the control value back onto the bind source. Overrides clsObjectBinderBase.ControlToObject. |
| BindSource | Public Property BindSource() As Object |
The business object (or collection) this binder reads and writes. Setting it also sets the binder's validation source unless dual binding overrides it (BR-BIND-002). |
| BindProperty | Public Property BindProperty() As String |
Name of the property on BindSource this binder gets/sets by reflection. |
| FormControl | Public Property FormControl() As Control |
The ASP.NET/Infragistics control instance this binder targets; its UniqueID is the key used by clsObjectBindManager.Binder and Update lookups. |
| BindType | Public Property BindType() As BindTypes |
Controls which directions data moves for this binder — ObjectToControl, ControlToObject, TwoWay, or ValidateOnly (BR-BIND-010). |
| UseEvents | Public Property UseEvents() As Boolean |
Whether this binder subscribes to its control's change event in Init (BR-BIND-007, BR-BIND-008). |
| ValidationKey | Friend Overridable ReadOnly Property ValidationKey() As String |
Computes the key under which this binder's validation object is registered — the business object's MyGuid for SAIF framework objects (via IsSAIFFrameWorkObject) or its type name otherwise (BR-BIND-004). |
| IsSAIFFrameWorkObject | Friend Overridable ReadOnly Property IsSAIFFrameWorkObject() As Boolean |
Walks the bind source's runtime base-class chain for the names clsBusinessBase / clsBusinessCollectionBase to decide whether framework-specific keying and validation applies (BR-BIND-061). |
| GetObjectValueAsString | Protected Function GetObjectValueAsString() As String |
Reads BindProperty from BindSource through TypeDescriptor/PropertyDescriptor and the property's TypeConverter, applying configured padding, for display in simple-value controls (BR-BIND-012, BR-BIND-013). |
| SetObjectValueAsString | Protected Sub SetObjectValueAsString(inValue As String) |
Writes a string value back onto BindProperty. Computes a padded value for PadTarget.Object but assigns the unpadded value to the property, so object-side padding has no observable effect.* |
| GetErrors | Public Overridable Function GetErrors() As Boolean |
Selects the validation property/source for a dual binder (otherwise the bind property/source), casts it to IDataErrorInfo, and reads Item(property) to populate ControlErrors (BR-BIND-031, BR-BIND-032, BR-BIND-033). |
| ControlErrors | Public ReadOnly Property ControlErrors() As ArrayList |
The list of non-blank, CRLF-split, <BR>-stripped error message fragments harvested for this binder in the current validation pass. |
| SetControlFormat | Public Sub SetControlFormat(inValid As Boolean) |
Applies error or valid CSS/color styling to FormControl based on control kind — errorbordercolor/errorbackcolor when invalid (BR-BIND-037, BR-BIND-038), normal/defaultbackcolor when valid, honoring an existing disabledbackcolor class (BR-BIND-039, BR-BIND-040). |
| SetDualBinding | Friend Sub SetDualBinding(inValidationSource As Object, inValidationProperty As String) |
Records a validation object/property distinct from the bind object/property, so the control can display one object while validating another (BR-BIND-059). |
Behavioral notes¶
- Contains an empty
Private Sub Dummy()with no observable effect.**
Constraints and usage notes¶
- Concrete binders must implement all three contract methods; the shared members listed above are available to every derived binder without reimplementation.
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/clsObjectBinderbase.vb