Data-driven command systems

MVVM & Runtime Merging

Let features contribute commands while the application retains one coherent ribbon.

Explore source
Parent systemRibbonControl
StatusActive
Modules1
RepositoryRibbonControl/ViewModels

Definition and view-model types, command catalogs, two-way runtime state, and merge policies let modules contribute or reorder tabs, groups, and items without owning the ribbon shell.

  1. 01

    XAML, MVVM, and hybrid composition

  2. 02

    Command catalog abstraction

  3. 03

    TabsSource, GroupsSource, and ItemsSource

  4. 04

    Pluggable merge policies and ordering

From intent
to working system.

01

Contribute

Application modules publish definitions or view-model collections.

02

Merge

Stable ids, order, and policy reconcile contributions.

03

Bind

The control observes command and two-way state services.

04

Present

One adaptive ribbon materializes the merged runtime model.

Adopt this
capability.

Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.

01 · Install
Terminal
dotnet add package RibbonControl.Core
02 · Use · xml
MainWindow.axaml
<ribbon:Ribbon
TabsSource="{CompiledBinding Ribbon.Tabs}"
CommandCatalog="{CompiledBinding CommandCatalog}"
SelectedTabId="{CompiledBinding Ribbon.SelectedTabId, Mode=TwoWay}"
QuickAccessItems="{CompiledBinding QuickAccessItems}" />

Use one layer.
Compose the rest.

Read the module beside the complete system.

The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.

RibbonControl

Search everything.

Loading the index…

move open esc close

Preparing metadata and full-text search…