64 lines
3.2 KiB
Markdown
64 lines
3.2 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- Common/DTS.Common/Interface/LabDetails/ILabDetailsView.cs
|
||
|
|
- Common/DTS.Common/Interface/LabDetails/ILabDetailsViewModel.cs
|
||
|
|
- Common/DTS.Common/Interface/LabDetails/ILabDetailsMenuView.cs
|
||
|
|
- Common/DTS.Common/Interface/LabDetails/ILabDetailsMenuViewModel.cs
|
||
|
|
generated_at: "2026-04-17T16:34:44.878640+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "c9488231a3aee52d"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Documentation: LabDetails Interfaces
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module defines four marker interfaces for the LabDetails feature within an MVVM (Model-View-ViewModel) architecture. The interfaces establish type contracts for two distinct UI components: a main LabDetails view with its corresponding view model, and a LabDetails menu view integrated with a ribbon control system. These interfaces enable dependency injection, testability, and loose coupling between UI components and their consumers.
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### ILabDetailsView
|
||
|
|
**Signature:** `public interface ILabDetailsView : IBaseView { }`
|
||
|
|
|
||
|
|
A marker interface extending `IBaseView`. Represents the main view contract for LabDetails functionality. No members are defined beyond those inherited from `IBaseView`.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### ILabDetailsViewModel
|
||
|
|
**Signature:** `public interface ILabDetailsViewModel : IBaseViewModel { }`
|
||
|
|
|
||
|
|
A marker interface extending `IBaseViewModel`. Represents the view model contract paired with `ILabDetailsView`. No members are defined beyond those inherited from `IBaseViewModel`.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### ILabDetailsMenuView
|
||
|
|
**Signature:** `public interface ILabDetailsMenuView : IRibbonView { }`
|
||
|
|
|
||
|
|
A marker interface extending `IRibbonView`. Represents a menu view contract for LabDetails that integrates with a ribbon control system. No members are defined beyond those inherited from `IRibbonView`.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### ILabDetailsMenuViewModel
|
||
|
|
**Signature:** `public interface ILabDetailsMenuViewModel : IRibbonViewModel { }`
|
||
|
|
|
||
|
|
A marker interface extending `IRibbonViewModel`. Represents the view model contract paired with `ILabDetailsMenuView`. No members are defined beyond those inherited from `IRibbonViewModel`.
|
||
|
|
|
||
|
|
## 3. Invariants
|
||
|
|
|
||
|
|
- Each view interface (`ILabDetailsView`, `ILabDetailsMenuView`) must have a corresponding view model interface (`ILabDetailsViewModel`, `ILabDetailsMenuViewModel`) following the MVVM pairing pattern.
|
||
|
|
- All interfaces are marker interfaces with no additional members; any behavioral contracts are inherited from their respective base interfaces (`IBaseView`, `IBaseViewModel`, `IRibbonView`, `IRibbonViewModel`).
|
||
|
|
- The specific invariants enforced by `IBaseView`, `IBaseViewModel`, `IRibbonView`, and `IRibbonViewModel` are not visible in the provided source.
|
||
|
|
|
||
|
|
## 4. Dependencies
|
||
|
|
|
||
|
|
### This module depends on:
|
||
|
|
- `DTS.Common.Base` — provides `IBaseView` and `IBaseViewModel` base types
|
||
|
|
- `DTS.Common.RibbonControl` — provides `IRibbonView` and `IRibbonViewModel` base types
|
||
|
|
|
||
|
|
### What depends on this module:
|
||
|
|
- Not determinable from the provided source alone. Consumers would typically include concrete implementations of these interfaces and any modules that reference LabDetails views or view models through these contracts.
|
||
|
|
|
||
|
|
## 5. Gotchas
|
||
|
|
|
||
|
|
- **Marker interfaces:** All four interfaces define no members of their own. They serve purely
|