--- source_files: - Common/DTS.Common/Interface/Viewer/IMainView.cs - Common/DTS.Common/Interface/Viewer/IMenuView.cs - Common/DTS.Common/Interface/Viewer/IFilterView.cs - Common/DTS.Common/Interface/Viewer/INavigationView.cs - Common/DTS.Common/Interface/Viewer/ITestDefinitionListView.cs - Common/DTS.Common/Interface/Viewer/IMenuViewModel.cs - Common/DTS.Common/Interface/Viewer/INavigationViewModel.cs - Common/DTS.Common/Interface/Viewer/IFilterViewModel.cs - Common/DTS.Common/Interface/Viewer/ITestDefinitionListViewModel.cs - Common/DTS.Common/Interface/Viewer/IMainViewModel.cs generated_at: "2026-04-17T16:34:18.316431+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "620b4a2305ac725b" --- # Documentation: DTS.Common.Interface Viewer Interfaces ## 1. Purpose This module defines the view and view-model interfaces for the Viewer component of the DTS application. It establishes the contract layer for an MVVM (Model-View-ViewModel) architecture, providing typed interfaces for main shell views, navigation, menus, filtering, and test summary list displays. These interfaces enable decoupled communication between UI components and their backing view models, supporting a region-based UI composition pattern. --- ## 2. Public Interface ### View Interfaces All view interfaces inherit from `IBaseView` (defined in `DTS.Common.Base`) and currently define no additional members—they serve as marker interfaces for type identification and dependency injection. | Interface | File | Description | |-----------|------|-------------| | `IMainView` | `IMainView.cs` | Marker interface for the main application view. | | `IMenuView` | `IMenuView.cs` | Marker interface for the menu view component. | | `IFilterView` | `IFilterView.cs` | Marker interface for the filter/search view component. | | `INavigationView` | `INavigationView.cs` | Marker interface for the navigation view component. | | `ITestSummaryListView` | `ITestDefinitionListView.cs` | Marker interface for the test summary list view. | ### ViewModel Interfaces All view-model interfaces inherit from `IBaseViewModel` (defined in `DTS.Common.Base`). #### `IMenuViewModel` ```csharp public interface IMenuViewModel : IBaseViewModel { IMenuView View { get; } } ``` Provides access to the associated `IMenuView` instance. #### `INavigationViewModel` ```csharp public interface INavigationViewModel : IBaseViewModel { INavigationView NavigationView { get; } } ``` Provides access to the associated `INavigationView` instance via the `NavigationView` property. #### `IFilterViewModel` ```csharp public interface IFilterViewModel : IBaseViewModel { IBaseView View { get; } IBaseViewModel Parent { get; } object ContextSearchRegion { get; set; } } ``` - `View`: Returns the filter view as `IBaseView`. - `Parent`: Provides access to the parent view model in the hierarchy. - `ContextSearchRegion`: A mutable property for region-based UI composition, likely used for dynamic view injection. #### `ITestSummaryListViewModel` ```csharp public interface ITestSummaryListViewModel