--- source_files: - Common/DTS.CommonCore/Events/ISO/ExtraPropertiesChangedEvent.cs generated_at: "2026-04-17T16:39:23.058616+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "c9e635756f4d2d11" --- # Documentation: ExtraPropertiesChangedEvent.cs ## 1. Purpose This module defines a Prism-based event mechanism for broadcasting changes to "extra properties" within the ISO-related subsystem. It enables decoupled pub/sub communication between components, allowing a producer to notify consumers when a collection of `IExtraProperty` objects has changed. The event follows the Prism CompositePresentationEvent pattern for loosely-coupled messaging. --- ## 2. Public Interface ### `ExtraPropertiesChangedEvent` A class that inherits from `CompositePresentationEvent`. It serves as the event definition used with Prism's `IEventAggregator` for publishing and subscribing to extra property change notifications. **Signature:** ```csharp public class ExtraPropertiesChangedEvent : CompositePresentationEvent { } ``` --- ### `ExtraPropertiesChangedEventArgs` A payload class carrying information about the property change event. **Constructor:** ```csharp public ExtraPropertiesChangedEventArgs(IList extraProperties, object producer, object consumer) ``` **Properties:** | Property | Type | Access | Description | |----------|------|--------|-------------| | `ExtraProperties` | `IList` | Public get, private set | The collection of extra properties that changed | | `Producer` | `object` | Public get, private set | The object that produced/owns the extra properties | | `Consumer` | `object` | Public get, private set | The intended consumer of the extra properties | --- ## 3. Invariants - **Immutability**: All properties on `ExtraPropertiesChangedEventArgs` are read-only after construction (private setters). - **Required parameters**: The constructor requires all three parameters (`extraProperties`, `producer`, `consumer`) to be provided—no parameterless constructor exists. - **No null validation**: The constructor does not perform null checks on any parameters; null values will be stored as-is. --- ## 4. Dependencies ### This module depends on: - `DTS.Common.Interface.ISO.ExtraProperties` — Provides the `IExtraProperty` interface used in the `ExtraProperties` collection - `Microsoft.Practices.Prism.Events` — Provides `CompositePresentationEvent` base class for the event pattern ### What depends on this module: - **Unknown from source alone** — Consumers would subscribe to or publish this event via Prism's `IEventAggregator`, but