--- source_files: - Common/DTS.CommonCore/Interface/ITabView.cs - Common/DTS.CommonCore/Interface/IMainView.cs - Common/DTS.CommonCore/Interface/IMenuView.cs - Common/DTS.CommonCore/Interface/IShellView.cs - Common/DTS.CommonCore/Interface/INavigationView.cs - Common/DTS.CommonCore/Interface/IViewerShellView.cs - Common/DTS.CommonCore/Interface/ITabViewModel.cs - Common/DTS.CommonCore/Interface/IMenuViewModel.cs - Common/DTS.CommonCore/Interface/INavigationViewModel.cs - Common/DTS.CommonCore/Interface/IPluginComponent.cs - Common/DTS.CommonCore/Interface/IShellViewModel.cs - Common/DTS.CommonCore/Interface/IViewerShellViewModel.cs - Common/DTS.CommonCore/Interface/IMainViewModel.cs - Common/DTS.CommonCore/Interface/IAssemblyInfo.cs - Common/DTS.CommonCore/Interface/IDataPROPage.cs generated_at: "2026-04-17T15:28:55.402889+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "a72604fcb2f400f1" --- # Documentation: DTS.Common.Interface ## 1. Purpose This module defines the core view and view-model abstraction layer for a WPF-based application framework. It establishes contracts for UI components including shell views, navigation views, tab views, menu views, and main views, following a Model-View-ViewModel (MVVM) pattern. The module also provides plugin infrastructure via `IPluginComponent`, assembly metadata attributes for image and name registration, and a comprehensive `IDataPROPage` interface for implementing data-driven UI pages with navigation, validation, and lifecycle management capabilities. --- ## 2. Public Interface ### View Interfaces #### `ITabView` ```csharp public interface ITabView : IBaseView { } ``` Marker interface for tab views. Inherits from `IBaseView`. #### `IMainView` ```csharp public interface IMainView : IBaseView { } ``` Marker interface for main views. Inherits from `IBaseView`. #### `IMenuView` ```csharp public interface IMenuView : IBaseView { } ``` Marker interface for menu views. Inherits from `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`. #### `IShellView` ```csharp public interface IShellView : IBaseWindow { } ``` Marker interface for shell views. Inherits from `IBaseWindow` (not `IBaseView`). --- ### ViewModel Interfaces #### `ITabViewModel` ```csharp public interface ITabViewModel : IBaseViewModel { ITabView View { get; } } ``` ViewModel contract for tab components. Provides access to the associated `ITabView`. #### `IMenuViewModel` ```csharp public interface IMenuViewModel : IBaseViewModel { IMenuView View {