--- source_files: - Common/DTS.Common/Interface/ITabView.cs - Common/DTS.Common/Interface/IMainView.cs - Common/DTS.Common/Interface/IMenuView.cs - Common/DTS.Common/Interface/IShellView.cs - Common/DTS.Common/Interface/INavigationView.cs - Common/DTS.Common/Interface/IViewerShellView.cs - Common/DTS.Common/Interface/ITabViewModel.cs - Common/DTS.Common/Interface/IMenuViewModel.cs - Common/DTS.Common/Interface/INavigationViewModel.cs - Common/DTS.Common/Interface/IPluginComponent.cs - Common/DTS.Common/Interface/IShellViewModel.cs - Common/DTS.Common/Interface/IViewerShellViewModel.cs - Common/DTS.Common/Interface/IMainViewModel.cs - Common/DTS.Common/Interface/IAssemblyInfo.cs - Common/DTS.Common/Interface/IDataPROPage.cs generated_at: "2026-04-17T15:29:07.765657+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "44b6ec338865b0fd" --- # DTS.Common.Interface Documentation ## 1. Purpose This module defines the core interface contracts for a WPF-based application framework following the Model-View-ViewModel (MVVM) pattern. It establishes abstractions for views (`ITabView`, `IMainView`, `IShellView`, etc.), view models (`ITabViewModel`, `IShellViewModel`, `IMainViewModel`, etc.), plugin components (`IPluginComponent`), assembly metadata attributes (`ImageAttribute`, `TextAttribute`), and specialized UI pages (`IDataPROPage`). These interfaces enable loose coupling between UI components and their controllers, supporting a modular, plugin-based architecture. --- ## 2. Public Interface ### View Interfaces #### `ITabView` ```csharp public interface ITabView : IBaseView { } ``` Marker interface for tab-based views. Inherits from `IBaseView`. #### `IMainView` ```csharp public interface IMainView : IBaseView { } ``` Marker interface for main application views. Inherits from `IBaseView`. #### `IMenuView` ```csharp public interface IMenuView : IBaseView { } ``` Marker interface for menu views. Inherits from `IBaseView`. #### `IShellView` ```csharp public interface IShellView : IBaseWindow { } ``` Marker interface for shell window views. Inherits from `IBaseWindow` (not `IBaseView`). #### `INavigationView` ```csharp public interface INavigationView : IBaseView { } ``` Marker interface for navigation views. Inherits from `IBaseView`. #### `IViewerShellView` ```csharp public interface IViewerShellView : IBaseView { } ``` Marker interface for viewer shell views. Inherits from `IBaseView`. --- ### ViewModel Interfaces #### `ITabViewModel` ```csharp public interface ITabViewModel : IBaseViewModel { ITabView View { get; } } ``` Defines a view model for tab views. Provides read-only access to the associated `ITabView`. #### `IMenuViewModel` ```csharp public interface IMenuViewModel : IBaseViewModel { IMenuView View { get