Я не уверен, почему подход RelativeSource не работает.(Я делаю это все время, AncestorType=UserControl
). Но если это неприемлемо, на ум приходят два способа.
1) Дайте каждому человеку список департаментов, к которым можно привязаться.В вашем примере вы можете просто передать список в конструкторе Person.Или, дайте каждому Person ссылку на родителя, чтобы получить доступ к любому свойству родителя, например: {Binding Parent.Departments}
2) Создайте вложенное свойство "ParentDataContext" и установите его вне вашего элемента управления, напримерthis:
<Window local:Attached.ParentDataContext="{Binding}" ... >
Затем вы можете привязать к нему любое место в дереве ниже:
{Binding Path=(local:Attached.ParentDataContext).Departments, RelativeSource=Self}
Присоединенное свойство должно наследовать, поэтому все нижнее значение в дереве будет установлено в соответствии с настройкойэто на верхнем уровне.