По моему тут проблема в логике. Какое событие вас интересует на самом деле?
Если вас интересует создание объекта, то у вас правильная логика - все происходит так как должно.
Если интересует изменение значений свойств, то нужно подписываться на событие изменения свойств.
Если интересует инициализация определенного набора свойств, то сделайте метод Initialize, в котором задавайте значения, а потом генерируйте события.
Если интересует создание объекта с инициализированными свойствами, то надо делать конструктор с параметрами и инициализировать свойства объекта внутри конструктора.