Files
DP44/docs/ai/Common/DTS.Common/Interface/LabDetails.md
2026-04-17 14:55:32 -04:00

3.2 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
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
2026-04-17T16:34:44.878640+00:00 zai-org/GLM-5-FP8 1 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