---
title: SAIF.Framework.Bindable overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: <owner>
last_reviewed: 2026-07-23
library: SAIF.Framework.Bindable
reference_type: package
---

# SAIF.Framework.Bindable overview

> **Documentation context:** Packaged Component (NuGet)

SAIF.Framework.Bindable is a base-class framework library that provides three independent, unrelated abstract base classes — `clsBindableBase`, `clsBindableCollectionBase`, and `clsRulesManagerBase` — intended to be inherited by business object classes elsewhere in the SAIF BOF stack to enable WinForms/WebForms data binding and rule-violation notification.

## Purpose
- Provide reusable, in-memory object-model plumbing (event wiring and `IBindingList` implementation) for business object classes that need to support data binding and rule-violation notification.
- Consumed by subclasses elsewhere in the SAIF BOF stack; this library defines no business operations, workflows, or concrete rule logic of its own.

## Responsibilities
- Expose a serialization-safe `IsModifiedChanged` change-notification event for single-object data binding (`clsBindableBase`).
- Implement the `IBindingList` contract over `CollectionBase` so subclass collections can be bound to WinForms/WebForms data-bound controls (`clsBindableCollectionBase`).
- Expose `RuleBroken`/`RuleNotBroken` events implementing a business-rule-violation notification pattern (`clsRulesManagerBase`).

## Key components
- `clsBindableBase`: Base class exposing `IsModifiedChanged` and a protected `m_CriteriaObject` field for data-binding change notification.
- `clsBindableCollectionBase`: Base class implementing `IBindingList` over `CollectionBase` for data-bound collection support.
- `clsRulesManagerBase`: Base class exposing `RuleBroken`/`RuleNotBroken` events for business-rule-violation notification.
- `RuleEvent`: Delegate signature (`void RuleEvent(object rule)`) used by `clsRulesManagerBase`'s events.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

## Sources
- `SAIF.Framework.Bindable\clsBindableBase.cs`
- `SAIF.Framework.Bindable\clsBindableCollectionBase.cs`
- `SAIF.Framework.Bindable\clsrulesmanagerbase.cs`
- `SAIF.Framework.Bindable\SAIF.BOF.Framework.Bindable.csproj`
- `SAIF.Framework.Bindable\SAIF.Framework.Bindable.sln`
