Skip to content

Notify modified-state change

This operation is clsBindableBase's single-object change-notification hook. A subclass calls it after deciding — by whatever logic it implements — that its own state has changed, and the base class takes care of safely relaying that fact to any attached listener (typically a data-bound UI control).

Field Value
Operation ID OP-BIND-001
Trigger Subclass call to OnIsModifiedChanged().
Inputs None.
Outputs IsModifiedChanged(this, EventArgs.Empty) when a subscriber is attached; otherwise no side effect.
Primary components clsBindableBase.OnIsModifiedChanged
Entry point SAIF.Framework.Bindable\clsBindableBase.cs

Steps

  1. A subclass calls OnIsModifiedChanged() on the current clsBindableBase instance — this is the only way the operation begins; nothing in the base class calls it automatically.
  2. The method checks whether the IsModifiedChanged event delegate is non-null, i.e., whether at least one listener has subscribed.
  3. If a subscriber is attached, the method invokes IsModifiedChanged(this, EventArgs.Empty), passing the bindable instance itself as the sender and an empty event-argument payload.
  4. If no subscriber is attached, the method returns immediately without raising an event and without throwing — the null check guards the invocation.

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([Subclass calls OnIsModifiedChanged]) --> Check{Subscriber attached?}
    Check -->|Yes| Raise[Invoke IsModifiedChanged<br>with this and EventArgs.Empty]
    Check -->|No| NoOp([Return without side effects])
    Raise --> EndOk([Notification delivered])

Failure and edge-case behavior

  • No subscriber attached: the method exits quietly rather than throwing, because it guards the delegate invocation with a null check — contrast this with Publish rule-status notification, whose equivalent methods invoke their delegates unguarded.

Sources

  • SAIF.Framework.Bindable\clsBindableBase.cs