В действительности, до рефакторинга рендеринга 1.0 фактически только частично, некоторые функции не работали бы должным образом, используя эту технику. Это также не поддерживается. Проблема с вашим оригинальным (и несколько функциональным) примером состоит в том, что вы нарушаете модель Datagrid, имея несколько рядов внутри друг друга. Если вы попытаетесь добавить выделение, это нарушит ваш сценарий.
Почему бы не рассмотреть Tree View для отображения иерархических структур? Если соответствует вашей модели данных и намерениям из того, что я вижу в вашей демонстрации.