LiveBindings

LiveBindings: expression-based binding that connects any object properties (UI ↔ data). It's the primary binding mechanism in FMX (FMX has no data-aware controls) and is also available in VCL.

LiveBindings Designer: drag connections between components visually (e.g., TFDQuery fields ↔ TListView items, TEdit.Text ↔ TLabel.Text).

Components: TBindingsList, TBindSourceDB (dataset source), TPrototypeBindSource (sample data), TAdapterBindSource + TListBindSourceAdapter<T> / TObjectBindSourceAdapter<T> (bind to objects and generic lists), TLinkControlToField, TLinkListControlToField, TLinkPropertyToField, TLinkGridToDataSource, TBindNavigator.

Alternatives: data-aware controls (VCL), MVVM frameworks (DSharp, Spring4D-based, Delphi MVVM libraries), or manual updates.

// Bind a TObjectList<TCustomer> to the UI via an adapter
procedure TMainForm.AdapterBindSource1CreateAdapter(Sender: TObject; var ABindSourceAdapter: TBindSourceAdapter);
begin
  FCustomers := TObjectList<TCustomer>.Create(True);
  FCustomers.Add(TCustomer.Create('Ana', 'Pune'));
  ABindSourceAdapter := TListBindSourceAdapter<TCustomer>.Create(Self, FCustomers, False);
end;

// Notify bindings after changing a property in code
TBindings.Notify(Edit1, 'Text');