void ICommand.Execute(ICommandSource source, ICommandState state, object target, object parameter) { Action <ICommandSource <TEventArgs>, ICommandState, TParam> copy = callback; if (copy == null) { Throw.ObjectDisposedException(); } copy.Invoke(source.Cast <TEventArgs>(), state, (TParam)parameter); }