Files

73 lines
3.1 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.Common/Events/GroupTemplates/TemplateChannelList/TemplateChannelListOrderChangedEvent.cs
- Common/DTS.Common/Events/GroupTemplates/TemplateChannelList/TemplateChannelListSelectionChangedEvent.cs
- Common/DTS.Common/Events/GroupTemplates/TemplateChannelList/TemplateChannelListRequiredChangedEvent.cs
generated_at: "2026-04-17T16:36:14.988730+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "e9ebc9c1d84a9eda"
---
# Documentation: Template Channel List Events
## 1. Purpose
This module defines three Prism event types for broadcasting changes related to template channel lists within the group templates subsystem. These events enable loosely-coupled communication between components when channel order changes, selection state changes, or required channel state changes occur. All events follow the Prism Event Aggregator pattern, extending `PubSubEvent<T>`.
---
## 2. Public Interface
### `TemplateChannelListOrderChangedEvent`
**Signature:** `public class TemplateChannelListOrderChangedEvent : PubSubEvent<IGroupTemplateChannel>`
An event that publishes `IGroupTemplateChannel` payloads when the order of channels in a template channel list has changed.
---
### `TemplateChannelListSelectionChangedEvent`
**Signature:** `public class TemplateChannelListSelectionChangedEvent : PubSubEvent<IGroupTemplateChannel>`
An event that publishes `IGroupTemplateChannel` payloads when the selection state within a template channel list has changed.
---
### `TemplateChannelListRequiredChangedEvent`
**Signature:** `public class TemplateChannelListRequiredChangedEvent : PubSubEvent<TemplateChannelListRequiredChangeEventArgs>`
An event that publishes `TemplateChannelListRequiredChangeEventArgs` payloads when the "required" state of template channels has changed.
---
### `TemplateChannelListRequiredChangeEventArgs`
**Signature:** `public class TemplateChannelListRequiredChangeEventArgs`
A payload class carrying information about required channel changes.
| Property | Type | Description |
|----------|------|-------------|
| `Consumer` | `object` | The consumer object associated with the change. |
| `Channels` | `IGroupTemplateChannel[]` | Array of channels affected by the required change. |
**Constructor:**
```csharp
public TemplateChannelListRequiredChangeEventArgs(object o, IGroupTemplateChannel[] channels)
```
---
## 3. Invariants
- All three event classes inherit from `PubSubEvent<T>` from Prism, ensuring they work with the Prism Event Aggregator pattern.
- `TemplateChannelListOrderChangedEvent` and `TemplateChannelListSelectionChangedEvent` both use `IGroupTemplateChannel` as their payload type.
- `TemplateChannelListRequiredChangedEvent` uses `TemplateChannelListRequiredChangeEventArgs` as its payload type, which encapsulates both a consumer reference and an array of channels.
- `TemplateChannelListRequiredChangeEventArgs.Channels` is an array (not a collection), set at construction time with no null validation in the constructor.
---
## 4. Dependencies
**This module depends on:**
- `DTS.Common.Interface.GroupTemplate` — provides the `IGroupTemplateChannel` interface used as payload type
- `Prism.Events` — provides