--- 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 ExtraProperties { get; set; }` | The observable collection of extra properties bound to the UI. | | `SetExtraProperties` | `void SetExtraProperties(IList 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 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