Files
2026-04-17 14:55:32 -04:00

38 lines
1.7 KiB
Markdown

---
source_files:
- Common/DTS.Common/Interface/DTS.Viewer/Menu/IMenuView.cs
- Common/DTS.Common/Interface/DTS.Viewer/Menu/IMenuViewModel.cs
generated_at: "2026-04-17T16:07:17.601881+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "96e762e96eb06952"
---
# Menu
### Purpose
This module defines the contract for menu-related views and view models within the DTS Viewer application. It provides the interface abstractions necessary for implementing menu UI components following the MVVM pattern, allowing menu functionality to be consumed without tight coupling to specific implementations.
### Public Interface
**IMenuView** (interface)
- Inherits from: `IBaseView`
- No additional members defined. Serves as a marker interface for menu-specific views.
**IMenuViewModel** (interface)
- Inherits from: `IBaseViewModel`
- `IMenuView View { get; }` - Gets the Shell View (as documented). Read-only property providing access to the associated menu view instance.
### Invariants
- `IMenuView` must always be assignable to `IBaseView`.
- `IMenuViewModel` must always be assignable to `IBaseViewModel`.
- The `View` property must return a valid `IMenuView` instance when accessed on a properly initialized implementation.
### Dependencies
- **Depends on**: `DTS.Common.Base` (specifically `IBaseView` and `IBaseViewModel` interfaces)
- **Depended on by**: Unknown from source alone (likely concrete menu implementations and shell/main window components)
### Gotchas
- The XML documentation comment references "Shell View" for the `View` property, which appears inconsistent with the property name and return type. This is likely a documentation error from copy-paste; the property returns a menu view, not a shell view.
---