--- source_files: - Common/DTS.CommonCore/Events/RegionOfInterest/RegionOfInterestChangedEvent.cs generated_at: "2026-04-17T16:39:19.158808+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "e442143e0642d03f" --- # Documentation: RegionOfInterestChangedEvent ## 1. Purpose This module defines `RegionOfInterestChangedEvent`, a typed event class for use with the Prism Event Aggregator pattern. It enables loosely-coupled publication and subscription of region-of-interest change notifications across the application. The event carries an `IRegionOfInterest` payload, allowing subscribers to react to changes in the active or selected region without direct coupling to the publisher. --- ## 2. Public Interface ### `RegionOfInterestChangedEvent` **Signature:** ```csharp public class RegionOfInterestChangedEvent : CompositePresentationEvent { } ``` **Description:** An empty class that inherits from `CompositePresentationEvent`. It serves as a type identifier for the Prism Event Aggregator, defining an event that publishes/subscribes to `IRegionOfInterest` instances. No additional members are defined; all functionality is inherited from the base class. --- ## 3. Invariants - The event payload type is fixed to `IRegionOfInterest`; subscribers will receive objects implementing this interface. - The class must remain instantiable (it is not `static` or `abstract`), allowing the Event Aggregator to create instances as needed. - Inheritance from `CompositePresentationEvent` is required for integration with Prism's `IEventAggregator`. --- ## 4. Dependencies ### This module depends on: - `DTS.Common.Interface.RegionOfInterest.IRegionOfInterest` — the interface defining the event payload contract. - `Microsoft.Practices.Prism.Events.CompositePresentationEvent` — the Prism base class for typed events. ### What depends on this module: - **Unknown from source alone.** Consumers would typically be modules that publish or subscribe to region-of-interest changes via the Event Aggregator. --- ## 5. Gotchas - **Older Prism namespace:** The import `Microsoft.Practices.Prism.Events` indicates use of an older version of Prism (pre-.NET Core/NET5+). Modern Prism uses `Prism.Events`. This may affect migration or cross-version compatibility. - **Empty class by design:** The class body is intentionally empty. It relies entirely on the base class for functionality. Do not add instance members; thread-safe subscription options are provided by the base `CompositePresentationEvent`.