--- 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`. --- ## 2. Public Interface ### `TemplateChannelListOrderChangedEvent` **Signature:** `public class TemplateChannelListOrderChangedEvent : PubSubEvent` An event that publishes `IGroupTemplateChannel` payloads when the order of channels in a template channel list has changed. --- ### `TemplateChannelListSelectionChangedEvent` **Signature:** `public class TemplateChannelListSelectionChangedEvent : PubSubEvent` An event that publishes `IGroupTemplateChannel` payloads when the selection state within a template channel list has changed. --- ### `TemplateChannelListRequiredChangedEvent` **Signature:** `public class TemplateChannelListRequiredChangedEvent : PubSubEvent` 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` 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