62 lines
2.8 KiB
Markdown
62 lines
2.8 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsView.cs
|
||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsViewModel.cs
|
||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsMenuView.cs
|
||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsMenuViewModel.cs
|
||
|
|
generated_at: "2026-04-17T16:34:43.882505+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "b87639c5f06e073a"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Documentation: LabDetails Interfaces
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module defines four marker interfaces for the "LabDetails" feature within an MVVM (Model-View-ViewModel) architecture. These interfaces establish type contracts for views and viewmodels, enabling dependency injection, view-model binding, and separation of concerns. The module provides two parallel hierarchies: a standard view/viewmodel pair extending base types, and a "Menu" variant integrating with a Ribbon control system.
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### `ILabDetailsView`
|
||
|
|
- **Namespace:** `DTS.Common.Interface`
|
||
|
|
- **Inheritance:** `IBaseView` (from `DTS.Common.Base`)
|
||
|
|
- **Members:** None defined (marker interface)
|
||
|
|
- **Description:** Represents the view contract for LabDetails display functionality.
|
||
|
|
|
||
|
|
### `ILabDetailsViewModel`
|
||
|
|
- **Namespace:** `DTS.Common.Interface`
|
||
|
|
- **Inheritance:** `IBaseViewModel` (from `DTS.Common.Base`)
|
||
|
|
- **Members:** None defined (marker interface)
|
||
|
|
- **Description:** Represents the viewmodel contract for LabDetails presentation logic.
|
||
|
|
|
||
|
|
### `ILabDetailsMenuView`
|
||
|
|
- **Namespace:** `DTS.Common.Interface`
|
||
|
|
- **Inheritance:** `IRibbonView` (from `DTS.Common.RibbonControl`)
|
||
|
|
- **Members:** None defined (marker interface)
|
||
|
|
- **Description:** Represents a Ribbon-integrated menu view for LabDetails functionality.
|
||
|
|
|
||
|
|
### `ILabDetailsMenuViewModel`
|
||
|
|
- **Namespace:** `DTS.Common.Interface`
|
||
|
|
- **Inheritance:** `IRibbonViewModel` (from `DTS.Common.RibbonControl`)
|
||
|
|
- **Members:** None defined (marker interface)
|
||
|
|
- **Description:** Represents the viewmodel contract for the LabDetails Ribbon menu.
|
||
|
|
|
||
|
|
## 3. Invariants
|
||
|
|
|
||
|
|
- All four interfaces are **marker interfaces** with no members of their own; all behavior contracts are inherited from their respective base interfaces.
|
||
|
|
- The naming convention implies a strict pairing: `ILabDetailsView` pairs with `ILabDetailsViewModel`, and `ILabDetailsMenuView` pairs with `ILabDetailsMenuViewModel`.
|
||
|
|
- All types reside in the `DTS.Common.Interface` namespace.
|
||
|
|
|
||
|
|
## 4. Dependencies
|
||
|
|
|
||
|
|
### External Dependencies (Imports)
|
||
|
|
| Interface | Dependency | Source Namespace |
|
||
|
|
|-----------|------------|------------------|
|
||
|
|
| `ILabDetailsView` | `IBaseView` | `DTS.Common.Base` |
|
||
|
|
| `ILabDetailsViewModel` | `IBaseViewModel` | `DTS.Common.Base` |
|
||
|
|
| `ILabDetailsMenuView` | `IRibbonView` | `DTS.Common.RibbonControl` |
|
||
|
|
| `ILabDetailsMenuViewModel` | `IRibbonViewModel` | `DTS.Common.RibbonControl` |
|
||
|
|
|
||
|
|
### Downstream Dependencies
|
||
|
|
-
|