Specialized ViewModel Coordinator Map

workflow-specific VMs that compose with the core hierarchy instead of replacing it

Specialized ViewModel Coordinator Map workflow-specific VMs that compose with the core hierarchy instead of replacing it Specialized ViewModel Coordinator Map workflow-specific VMs that compose with the core hierarchy instead of replacing it Workflow primitives Coordinator services and messages Host-facing use cases FormVM snapshot + dirty state validation + approval deny restores model DiscriminatorVM ActiveKey case registry mode/pane coordination NotificationVM render-ready notification dismiss command auto-resolve by lifespan ConfirmationVM inherits NotificationVM approve/reject commands no timeout auto-resolve ModalVM presented VM workflow completion state host dialog bridge IDialogService confirm / notify / pick file VM-backed modal seam safe null service INotificationHub post / resolve pending snapshot await user reaction Command adapters ConfirmationDecoratorCommand make_confirm helper approve/deny wiring Editor workflows FormVM + DiscriminatorVM edit/preview modes User decisions dialog confirmations notification-backed confirms Notification regions toast lists queued actions host render VMs Decision rule Choose a specialized VM when the workflow is reusable; otherwise compose commands, capabilities, and core VMs directly. coordinates modes extends modal edit host decision posts commands await render

Workflow ownership

  • FormVM owns edit lifecycle rather than container membership.
  • DiscriminatorVM coordinates active cases without becoming a child-list primitive.
  • ModalVM bridges a presented VM to host completion semantics.

Notification flow

  • NotificationVM and ConfirmationVM render hub-posted notifications.
  • INotificationHub owns post/resolve and pending snapshot behavior.
  • Confirmation helpers adapt hub reactions to command confirmation delegates.

Best fit

  • Use these primitives for recurring app workflows: forms, modes, modals, confirms, and toasts.
  • Keep leaf/container hierarchy choices separate from workflow coordination.
  • The Notes Workspace examples combine these with Aggregate, Composite, and Component families.