---
title: clsBindableBase
summary: API reference for clsBindableBase.
status: draft
owner: <owner>
last_reviewed: 2026-07-23
library: SAIF.Framework.Bindable
reference_type: package
---

# clsBindableBase

`clsBindableBase` is an abstract base class that exposes a serialization-safe `IsModifiedChanged` event and a protected `m_CriteriaObject` field, intended to be inherited by business object classes elsewhere in the SAIF BOF stack that need to support data-binding change notification.

## Purpose
- Provide a reusable, guarded change-notification event (`IsModifiedChanged`) for subclasses whose modified state needs to be surfaced to a data-bound UI or consumer.

## Context
- Namespace: `SAIF.Framework`
- Assembly/package: `SAIF.BOF.Framework.Bindable.csproj` (packed into the `SAIF.BOF.Framework` NuGet package)*

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `IsModifiedChanged` | `event EventHandler IsModifiedChanged` | Serialization-safe (`[NonSerialized]`) event raised when a subclass's modified state changes. |

## Behavioral notes
- The protected `m_CriteriaObject` field (`Object`) is not directly exposed as a public member but is available to subclasses; no usage of the field appears within this library itself, and its intended relationship to the SAIF BOF `Criteria`/`IBusinessCriteria` pattern is inferred but not confirmed by any code in this library.*
- The protected `OnIsModifiedChanged()` method raises `IsModifiedChanged` only if a subscriber is attached (`if (IsModifiedChanged != null)`), so calling it with no subscriber is safe and raises no exception.
- No consumers of this class exist within this library's own source; actual subclassing usage is outside this library's scope and unverified.**

## Constraints and usage notes
- Subclasses must call the protected `OnIsModifiedChanged()` method themselves to raise the event; this base class does not automatically detect state changes.
- The `IsModifiedChanged` event is marked `[NonSerialized]`, so it is excluded from binary/XML serialization of the subclass instance.

> **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.

## Sources
- `SAIF.Framework.Bindable\clsBindableBase.cs`
