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.
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.