Files

89 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
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 {