<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _execute_on_selected(self, p_cmd_str, p_execute_signal):
 """ Executes command specified by p_cmd_str on selected todo item. p_cmd_str should be a string with one replacement field ('{}') which will be substituted by id of the selected todo item. p_execute_signal is the signal name passed to the main loop. It should be one of 'execute_command' or 'execute_command_silent'. """

        try:
            todo = self.listbox.focus.todo
            todo_id = str(self.view.todolist.number(todo))

            urwid.emit_signal(self, p_execute_signal, p_cmd_str, todo_id)

            # force screen redraw after editing
            if p_cmd_str.startswith('edit'):
                urwid.emit_signal(self, 'refresh')
        except AttributeError:
            # No todo item selected
            pass