55 lines
3.1 KiB
Markdown
55 lines
3.1 KiB
Markdown
|
|
---
|
||
|
|
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
|