public KeyInteractionEventArgs( IKey k, IKeyProgram p, KeyInteractionEventType eventType ) : base(k) { EventType = eventType; // Clone the commands: the emitted commands is a snapshot of the commands // at the time of the event. string[] copy = p.Commands.ToArray(); Commands = new CKReadOnlyListOnIList<string>( copy ); }