Files
DP44/docs/ai/Common/DTS.CommonCore/Events/RegionOfInterest.md

54 lines
2.5 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
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<IRegionOfInterest> { }
```
**Description:**
An empty class that inherits from `CompositePresentationEvent<IRegionOfInterest>`. 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<T>` 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<T>` — 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<T>`.