Sic.Framework-Nanjing-Baishi/MECF.Framework.UI.Client/ClientBase/Command/CommandTriggerGroup.cs

28 lines
803 B
C#
Raw Normal View History

2023-04-13 11:51:03 +08:00
using System.Collections.Generic;
using System.Windows;
namespace OpenSEMI.ClientBase.Command
{
public sealed class CommandTriggerGroup : FreezableCollection<CommandTrigger>, ICommandTrigger
{
private readonly HashSet<ICommandTrigger> _initList = new HashSet<ICommandTrigger>();
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);
}
}
}