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

55 lines
3.1 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.Common/Interface/ISO/ExtraProperties/IExtraPropertiesListView.cs
- Common/DTS.Common/Interface/ISO/ExtraProperties/IExtraPropertiesListViewModel.cs
- Common/DTS.Common/Interface/ISO/ExtraProperties/IExtraProperty.cs
generated_at: "2026-04-17T16:35:54.446728+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "99f1ac3c6f8ff64b"
---
# Documentation: DTS.Common.Interface.ISO.ExtraProperties
## 1. Purpose
This module defines the contract for a Model-View-ViewModel (MVVM) pattern implementation for managing a collection of "extra properties" — arbitrary key-value pairs associated with some parent entity. It provides interfaces for the view (`IExtraPropertiesListView`), view model (`IExtraPropertiesListViewModel`), and individual property items (`IExtraProperty`), enabling UI-agnostic management of property lists with support for selection, filtering, sorting, validation, and clipboard operations. The module appears designed for use within a larger desktop application framework (likely WPF-based) that handles ISO-related data.
---
## 2. Public Interface
### IExtraPropertiesListView
**Signature:** `public interface IExtraPropertiesListView : IBaseView`
A marker interface extending `IBaseView` with no additional members. Represents the view abstraction for the extra properties list UI.
---
### IExtraPropertiesListViewModel
**Signature:** `public interface IExtraPropertiesListViewModel : IBaseViewModel`
Defines the view model contract for managing a collection of extra properties.
| Member | Signature | Description |
|--------|-----------|-------------|
| `SetPage` | `void SetPage(IDataPROPage page)` | Injects a page reference, presumably for navigation or context. |
| `SetParent` | `void SetParent(object parent)` | Sets the parent object that owns these extra properties. |
| `View` | `IExtraPropertiesListView View { get; set; }` | Gets or sets the associated view instance. |
| `CopySelected` | `void CopySelected()` | Copies the currently selected properties to clipboard. |
| `DeleteSelected` | `void DeleteSelected()` | Deletes the currently selected properties from the collection. |
| `ExtraProperties` | `ObservableCollection<IExtraProperty> ExtraProperties { get; set; }` | The observable collection of extra properties bound to the UI. |
| `SetExtraProperties` | `void SetExtraProperties(IList<IExtraProperty> properties)` | Replaces the current collection with the provided list of properties. |
| `Filter` | `void Filter(object tag, string term)` | Filters the displayed properties based on a tag and search term. |
| `Sort` | `void Sort(object o, bool columnClick)` | Sorts the properties collection. Parameters suggest column-based sorting. |
| `Validate` | `bool Validate(ref List<string> errors)` | Validates the properties collection; returns `true` if valid, `false` with error messages populated in the `errors` list. |
| `IsReadOnly` | `bool IsReadOnly { get; set; }` | Controls whether the UI allows editing of properties. |
| `SelectedProperties` | `IExtraProperty[] SelectedProperties { get; }` | Returns an array of currently selected property items. |
---
### IExtraProperty
**Signature