--- 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