using System.Collections.Generic; using System.Windows; namespace OpenSEMI.ClientBase.Command { public sealed class CommandTriggerGroup : FreezableCollection, ICommandTrigger { private readonly HashSet _initList = new HashSet(); void ICommandTrigger.Initialize(FrameworkElement source) { foreach (ICommandTrigger child in this) { if (!_initList.Contains(child)) { InitializeCommandSource(source, child); } } } private void InitializeCommandSource(FrameworkElement source, ICommandTrigger child) { child.Initialize(source); _initList.Add(child); } } }