Files

315 lines
11 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.CommonCore/RibbonControl/Classes/ButtonData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/SeparatorData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/GalleryItemData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/ComboBoxData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/MenuItemData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/SplitMenuItemData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/ApplicationMenuItemData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/ApplicationSplitMenuItemData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/TextBoxData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/CheckBoxData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/RadioButtonData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/ToggleButtonData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/SplitButtonData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/ContextualTabGroupData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/ViewModel.cs
- Common/DTS.CommonCore/RibbonControl/Classes/GalleryCategoryData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/TabData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/RibbonData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/GalleryData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/ControlData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/MenuButtonData.cs
- Common/DTS.CommonCore/RibbonControl/Classes/GroupData.cs
generated_at: "2026-04-17T15:27:41.426809+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "b5848407592cc670"
---
# DTS.Common.RibbonControl Data Classes Documentation
## 1. Purpose
This module provides a data model layer for a WPF Ribbon control implementation. It defines a hierarchy of data classes that represent ribbon UI elements—tabs, groups, buttons, menus, galleries, and various input controls—each implementing `INotifyPropertyChanged` to support data binding. The module appears designed to serve as a ViewModel or data context layer, separating ribbon state from UI rendering concerns while providing auto-generated sample data for testing/demo purposes.
---
## 2. Public Interface
### ControlData (Base Class)
**Namespace:** `DTS.Common.RibbonControl`
Base class for all ribbon control data objects. Implements `INotifyPropertyChanged`.
| Property | Type | Description |
|----------|------|-------------|
| `Label` | `string` | Display label for the control |
| `LargeImage` | `Uri` | URI for 32x32 icon |
| `SmallImage` | `Uri` | URI for 16x16 icon |
| `ToolTipTitle` | `string` | Tooltip header text |
| `ToolTipDescription` | `string` | Tooltip body text |
| `ToolTipImage` | `Uri` | Tooltip image URI |
| `ToolTipFooterTitle` | `string` | Tooltip footer title |
| `ToolTipFooterDescription` | `string` | Tooltip footer description |
| `ToolTipFooterImage` | `Uri` | Tooltip footer image URI |
| `Command` | `ICommand` | Command executed on control activation |
| `KeyTip` | `string` | Keyboard shortcut hint |
**Event:** `PropertyChanged` (from `INotifyPropertyChanged`)
---
### ButtonData
Inherits from `ControlData`. No additional members—serves as a marker type for simple button controls.
---
### SeparatorData
Inherits from `ControlData`. No additional members—represents a visual separator in menus/toolbars.
---
### GalleryItemData
Inherits from `ControlData`. No additional members—represents an individual item within a gallery.
---
### TextBoxData
Inherits from `ControlData`.
| Property | Type | Description |
|----------|------|-------------|
| `Text` | `string` | Current text content; raises `PropertyChanged("Text")` on change |
---
### CheckBoxData
Inherits from `ControlData`.
| Property | Type | Description |
|----------|------|-------------|
| `IsChecked` | `bool` | Checked state; raises `PropertyChanged("IsChecked")` on change |
---
### RadioButtonData
Inherits from `ControlData`.
| Property | Type | Description |
|----------|------|-------------|
| `IsChecked` | `bool` | Selected state; raises `PropertyChanged("IsChecked")` on change |
---
### ToggleButtonData
Inherits from `ControlData`.
| Property | Type | Description |
|----------|------|-------------|
| `IsChecked` | `bool` | Toggled state; raises `PropertyChanged("IsChecked")` on change |
---
### MenuButtonData
Inherits from `ControlData`.
| Constructor | Description |
|-------------|-------------|
| `MenuButtonData()` | Creates instance with `isApplicationMenu = false` |
| `MenuButtonData(bool isApplicationMenu)` | Creates instance with specified application menu flag |
| Property | Type | Description |
|----------|------|-------------|
| `IsVerticallyResizable` | `bool` | Vertical resize capability |
| `IsHorizontallyResizable` | `bool` | Horizontal resize capability |
| `ControlDataCollection` | `ObservableCollection<ControlData>` | Lazy-initialized collection of child controls (auto-populated with sample data) |
---
### ComboBoxData
Inherits from `MenuButtonData`. No additional members.
---
### SplitButtonData
Inherits from `MenuButtonData`.
| Constructor | Description |
|-------------|-------------|
| `SplitButtonData()` | Creates instance with `isApplicationMenu = false` |
| `SplitButtonData(bool isApplicationMenu)` | Creates instance with specified application menu flag |
| Property | Type | Description |
|----------|------|-------------|
| `IsChecked` | `bool` | Checked state |
| `IsCheckable` | `bool` | Whether the button can be toggled |
| `DropDownButtonData` | `ButtonData` | Lazy-initialized button data for dropdown portion |
---
### MenuItemData
Inherits from `SplitButtonData`.
| Constructor | Description |
|-------------|-------------|
| `MenuItemData()` | Creates instance with `isApplicationMenu = false` |
| `MenuItemData(bool isApplicationMenu)` | Creates instance with specified application menu flag |
---
### SplitMenuItemData
Inherits from `MenuItemData`.
| Constructor | Description |
|-------------|-------------|
| `SplitMenuItemData()` | Creates instance with `isApplicationMenu = false` |
| `SplitMenuItemData(bool isApplicationMenu)` | Creates instance with specified application menu flag |
---
### ApplicationMenuItemData
Inherits from `MenuItemData`.
| Constructor | Description |
|-------------|-------------|
| `ApplicationMenuItemData()` | Creates instance with `isApplicationMenu = false` |
| `ApplicationMenuItemData(bool isApplicationMenu)` | Creates instance with specified application menu flag |
---
### ApplicationSplitMenuItemData
Inherits from `SplitMenuItemData`.
| Constructor | Description |
|-------------|-------------|
| `ApplicationSplitMenuItemData()` | Creates instance with `isApplicationMenu = false` |
| `ApplicationSplitMenuItemData(bool isApplicationMenu)` | Creates instance with specified application menu flag |
---
### GalleryCategoryData
Inherits from `ControlData`.
| Property | Type | Description |
|----------|------|-------------|
| `GalleryItemDataCollection` | `ObservableCollection<GalleryItemData>` | Lazy-initialized collection (auto-populated with sample items) |
---
### GalleryCategoryData\<T\>
Generic variant inheriting from `ControlData`.
| Property | Type | Description |
|----------|------|-------------|
| `GalleryItemDataCollection` | `ObservableCollection<T>` | Lazy-initialized generic collection |
---
### GalleryData
Inherits from `ControlData`.
| Property | Type | Description |
|----------|------|-------------|
| `CategoryDataCollection` | `ObservableCollection<GalleryCategoryData>` | Lazy-initialized categories (auto-populated with sample data) |
| `SelectedItem` | `GalleryItemData` | Currently selected gallery item |
| `CanUserFilter` | `bool` | Whether user can filter gallery items |
---
### GalleryData\<T\>
Generic variant inheriting from `ControlData`.
| Property | Type | Description |
|----------|------|-------------|
| `CategoryDataCollection` | `ObservableCollection<GalleryCategoryData<T>>` | Lazy-initialized generic categories |
| `SelectedItem` | `T` | Currently selected item |
| `CanUserFilter` | `bool` | Whether user can filter gallery items |
---
### GroupData
Inherits from `ControlData`.
| Constructor | Description |
|-------------|-------------|
| `GroupData(string header)` | Creates instance with specified header label |
| Property | Type | Description |
|----------|------|-------------|
| `ControlDataCollection` | `ObservableCollection<ControlData>` | Lazy-initialized child controls (auto-populated with sample controls) |
---
### TabData
Implements `INotifyPropertyChanged`.
| Constructor | Description |
|-------------|-------------|
| `TabData()` | Creates instance with null header |
| `TabData(string header)` | Creates instance with specified header |
| Property | Type | Description |
|----------|------|-------------|
| `Header` | `string` | Tab display text |
| `ContextualTabGroupHeader` | `string` | Header of associated contextual tab group |
| `IsSelected` | `bool` | Selection state |
| `GroupDataCollection` | `ObservableCollection<GroupData>` | Lazy-initialized groups (auto-populated with sample groups) |
---
### ContextualTabGroupData
Implements `INotifyPropertyChanged`.
| Constructor | Description |
|-------------|-------------|
| `ContextualTabGroupData()` | Creates instance with null header |
| `ContextualTabGroupData(string header)` | Creates instance with specified header |
| Property | Type | Description |
|----------|------|-------------|
| `Header` | `string` | Group display text |
| `IsVisible` | `bool` | Visibility state |
| `TabDataCollection` | `ObservableCollection<TabData>` | Lazy-initialized tabs collection |
---
### RibbonData
Implements `INotifyPropertyChanged`.
| Property | Type | Description |
|----------|------|-------------|
| `TabDataCollection` | `ObservableCollection<TabData>` | Lazy-initialized tabs (auto-populated based on `ViewModelData.TabCount` and `ViewModelData.ContextualTabGroupCount`) |
| `ContextualTabGroupDataCollection` | `ObservableCollection<ContextualTabGroupData>` | Lazy-initialized contextual groups |
| `ApplicationMenuData` | `MenuButtonData` | Lazy-initialized application menu data |
---
### ViewModelData (Static Class)
| Constant | Type | Value | Description |
|----------|------|-------|-------------|
| `TabCount` | `int` | 4 | Number of tabs to generate |
| `ContextualTabGroupCount` | `int` | 2 | Number of contextual groups |
| `GroupCount` | `int` | 3 | Groups per tab |
| `ControlCount` | `int` | 5 | Controls per group (unused) |
| `ButtonCount` | `int` | 1 | Buttons per group |
| `ToggleButtonCount` | `int` | 1 | ToggleButtons per group |
| `RadioButtonCount` | `int` | 1 | RadioButtons per group |
| `CheckBoxCount` | `int` | 1 | CheckBoxes per group |
| `TextBoxCount` | `int` | 1 | TextBoxes per group |
| `MenuButtonCount` | `int` | 1 | MenuButtons per group |
| `MenuItemCount` | `int` | 2 | MenuItems per menu |
| `SplitButtonCount` | `int` | 1 | SplitButtons per group |
| `SplitMenuItemCount` | `int` | 2 | SplitMenuItems per menu |
| `GalleryCount` | `int` | 1 | Galleries per menu |
| `GalleryCategoryCount` | `int` | 3 | Categories per gallery |
| `GalleryItemCount` | `int` | 10 | Items per gallery category |
| `MenuItemNestingCount` | `int` | 2 | Maximum menu nesting depth |
| `ComboBoxCount` | `int` | 1 | ComboBoxes per group |
| Property | Type | Description |
|----------|------|-------------|
| `RibbonData` | `RibbonData` | Thread-static lazy-initialized ribbon data instance |
| `DefaultCommand` | `ICommand` | Lazy-initialized `DelegateCommand` that always executes successfully