(0) Можно вместе с кнопками программно добавлять соответствующие команды, привязывать их к кнопкам. Для всех команд устанавливать одно и то же "Действие" (обработчик). И уже в этом обработчике, который имеет параметр "Команда", анализировать имя команды (а по сути кнопки), его вызвавшем.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший