private void DropCopy(IDropInfo dropInfo)
        {
            Action <ISound, int> insertSoundAction;

            if (ReferenceEquals(dropInfo.TargetCollection, SoundService.ActiveSounds))
            {
                insertSoundAction = (soundToInsert, i) => { SoundService.Add(soundToInsert); };
            }
            else
            {
                insertSoundAction = (soundToInsert, i) =>
                {
                    ObservableCollection <ISound> targetCollection = dropInfo.TargetCollection as ObservableCollection <ISound>;
                    targetCollection?.Insert(i, soundToInsert);
                };
            }

            ISound sound = dropInfo.Data as ISound;
            IEnumerable <ISound> sounds     = dropInfo.Data as IEnumerable <ISound>;
            DataObject           dataObject = dropInfo.Data as DataObject;

            if (sound != null)
            {
                DropSounds(insertSoundAction, dropInfo.InsertIndex, sound);
            }
            else if (sounds != null)
            {
                DropSounds(insertSoundAction, dropInfo.InsertIndex, sounds.ToArray());
            }
            else if (dataObject != null)
            {
                DropFiles(insertSoundAction, dropInfo.InsertIndex, dataObject);
            }
        }