Есть 2 темы, которые могут помочь вам удовлетворить ваши потребности:
Командование и Маршрутизируемые события
Оба механизма созданы специально для wpfИерархическая структура.
Читайте оба, они помогут неизмеримо улучшить ваш опыт работы с wpf.
РЕДАКТИРОВАТЬ: Что-то более полезное.Поместите Button.Click = "" в элемент управления, в который вы хотите перехватить событие.Вы можете использовать свойство Tag кнопки для хранения идентифицирующей информации, чтобы ваш обработчик событий знал, что нажата правильная кнопка.
<Grid Button.Click="Button_ClickHandler">
<Button Tag="PrintButton/>
</Grid>
В вашем коде для пользовательского элемента управления вам потребуется обработчик с именем Button_ClickHandler.
Приведенный выше метод использует события маршрутизатора.Однако я действительно рекомендую использовать команды.