Динамическое дерево с привязкой

Хочу сделать дерево, которое будет отображать структуру организации с 4 уровнями. И конечно же в уровнях может происходить добавление нового или удаление старого отдела и тд. перемещение отделов в друго структурное подразделение и т.д.

Также необходимо связать с ней элемент отображения данных ( GridView и т.д.).

Каким образом можно создать такое динамическое дерево?

TreeView для этих целей не подходит, его можно связать только с XML, а у меня структура будет в виде взаимосвязанных таблиц.