/// <summary>
        /// Invocación desde la UI del comando del ViewModel correspondiente a este evento
        /// si la tecla pulsada no es Repeat
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void EditMacroWindow_KeyUp(object sender, KeyEventArgs e)
        {
            EditMacroWindowViewModel vm = (EditMacroWindowViewModel)DataContext;

            if (!e.Key.Equals(Key.Delete) && !e.IsRepeat && vm.IsRecordingSwitchEnabled)
            {
                vm.AddKeystrokeUpCommand.Execute(e.Key);
            }
        }
        public EditMacroWindow(object macroId)
        {
            //MessageBox.Show(algo.ToString());

            /*
             * La asignación del DataContext se hace a través del constructor para
             * aprovechar la variable que se pasa, que es el identificador la macro.
             */
            DataContext = new EditMacroWindowViewModel(macroId.ToString());
            InitializeComponent();
        }
        /// <summary>
        /// Control del evento de pulsación de tecla para el enrutamiento adecuado
        /// de instrucciones al viewmodel
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void EditMacroWindow_KeyDown(object sender, KeyEventArgs e)
        {
            EditMacroWindowViewModel vm = (EditMacroWindowViewModel)DataContext;

            // Si la tecla no es pulsada por repetición y estando activada la
            // escucha de teclas se invoca el comando pertinente, en caso de no
            // cumplirse esta condición comprobamos si se está pulsando Esc con
            // la escucha desactivada para deseleccionar la lista.

            if (!e.IsRepeat && vm.IsRecordingSwitchEnabled)
            {
                vm.AddKeystrokeDownCommand.Execute(e.Key);
            }
            else if (!vm.IsRecordingSwitchEnabled && e.Key.Equals(Key.Escape))
            {
                vm.SelectedKeystrokeIndex = -1;
            }
        }