Files
DP44/docs/ai/Common/DTS.Common/Interface/ExportData.md
2026-04-17 14:55:32 -04:00

77 lines
3.0 KiB
Markdown

---
source_files:
- Common/DTS.Common/Interface/ExportData/IExportDataView.cs
- Common/DTS.Common/Interface/ExportData/IExportDataViewModel.cs
- Common/DTS.Common/Interface/ExportData/IExportHeader.cs
generated_at: "2026-04-17T16:35:51.580680+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "eab48691f38de164"
---
# Documentation: Export Data Interfaces
## 1. Purpose
This module defines a set of interfaces supporting a data export feature within an MVVM (Model-View-ViewModel) architecture. It provides marker interfaces for export-specific views and view models (`IExportDataView`, `IExportDataViewModel`) that integrate with a base framework, and defines `IExportHeader` for modeling selectable column headers during the export configuration process.
---
## 2. Public Interface
### `IExportDataView`
**Namespace:** `DTS.Common.Interface`
**File:** `Common/DTS.Common/Interface/ExportData/IExportDataView.cs`
```csharp
public interface IExportDataView : IBaseView
```
A marker interface extending `IBaseView`. Declares no members. Intended to identify views specifically scoped to export data functionality.
---
### `IExportDataViewModel`
**Namespace:** `DTS.Common.Interface`
**File:** `Common/DTS.Common/Interface/ExportData/IExportDataViewModel.cs`
```csharp
public interface IExportDataViewModel : IBaseViewModel
```
A marker interface extending `IBaseViewModel`. Declares no members. Intended to identify view models specifically scoped to export data functionality.
---
### `IExportHeader`
**Namespace:** `DTS.Common.Interface.ExportData`
**File:** `Common/DTS.Common/Interface/ExportData/IExportHeader.cs`
```csharp
public interface IExportHeader : INotifyPropertyChanged
```
Defines a selectable export column header with the following properties:
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `HeaderName` | `string` | get/set | The display name of the export header/column |
| `IsSelected` | `bool` | get/set | Indicates whether this header is selected for export |
Implements `INotifyPropertyChanged`, indicating that implementations are expected to raise the `PropertyChanged` event when property values change.
---
## 3. Invariants
- **`IExportHeader` implementations** must properly implement `INotifyPropertyChanged.PropertyChanged` event and are expected to raise property change notifications when `HeaderName` or `IsSelected` are modified. The source does not specify whether notifications must be raised for both properties or only the changed property.
- **Marker interfaces** (`IExportDataView`, `IExportDataViewModel`) have no behavioral contracts defined in this source; any invariants would be inherited from `IBaseView` and `IBaseViewModel` respectively, which are not included in the provided source.
---
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base.IBaseView` — base interface for `IExportDataView`
- `DTS.Common.Base.IBaseViewModel` — base interface for `IExportDataViewModel`
- `System.ComponentModel.INotifyPropertyChanged` — base interface for `IExportHeader