gum-runtime-binding

Configure Gum runtime data binding for GraphicalUiElement and FrameworkElement controls.

597|79|Updated Mar 11, 2015
One-click install
npx skills add https://github.com/vchelaru/Gum --skill gum-runtime-binding
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gum-runtime-binding
Source: https://github.com/vchelaru/Gum/tree/main/.claude/skills/gum-runtime-binding
Command: npx skills add https://github.com/vchelaru/Gum --skill gum-runtime-binding

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers need clear guidance on Gum's runtime data binding system, including differences between GraphicalUiElement visuals and FrameworkElement forms controls, binding contexts, and advanced binding features.

Core Features & Use Cases

  • Two Binding Systems: GraphicalUiElement provides simple string bindings, while FrameworkElement offers richer bindings via strings, Binding objects, and lambdas.
  • BindingContext Cascading: Automatically propagates to descendants unless overridden.
  • Index-Based & Collection Change Binding: Supports indexed path syntax and reacts to collection notifications.
  • Weak Listener Management: Prevents memory leaks in deep property paths.
  • Non‑Obvious Behaviors: Deprecation of BindableGue, static path extraction from lambdas, and handling of out‑of‑bounds indexes.

Quick Start

Explain how to bind a TextBox's Text property to a view model property using a lambda expression.

Frequently Asked Questions about gum-runtime-binding

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure runtime data binding for Gum UI elements?

Configure Gum runtime data binding by setting a BindingContext on GraphicalUiElement visuals or FrameworkElement form controls. The context automatically cascades to descendants, enabling string, object, and lambda bindings for two-way UI synchronization without external dependencies.

What is the difference between GraphicalUiElement and FrameworkElement binding in Gum?

GraphicalUiElement supports simple string bindings for visuals, while FrameworkElement offers richer form control bindings using strings, Binding objects, and lambda expressions. FrameworkElement provides advanced features like configurable binding modes and converters.

How do I bind a TextBox property to a view model using a lambda expression?

Bind a TextBox property using a lambda expression by passing the expression to the FrameworkElement binding setup. Gum extracts the static property path from the lambda to establish two-way synchronization between the form control and the view model.

Does Gum runtime binding support indexed paths and collection change notifications?

Gum runtime binding supports indexed path syntax and reacts to collection change notifications. This allows UI elements to dynamically update when underlying collections change, including handling out-of-bounds indexes during data synchronization.

How does Gum handle memory management for deep property path bindings?

Gum manages memory in deep property path bindings using weak listener management. This prevents memory leaks when tracking property changes across nested objects within the binding context cascade.

Why was BindableGue deprecated in Gum's binding system?

BindableGue is deprecated in Gum's binding system because FrameworkElement and GraphicalUiElement now provide native runtime binding capabilities. This shift allows direct binding context setup and lambda support without requiring a separate bindable wrapper component.