Files
DP44/docs/ai/Common/DTS.Common/Interface.md

89 lines
2.7 KiB
Markdown
Raw Normal View History

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