Могло быть любое количество пространств имен в данном блоке, и ничто не требует их всем, начинают с общего корня. Лучшее, которое Вы могли сделать, должно будет отразиться по всем типам в блоке и создать список уникальных пространств имен, содержавших там.
Оказывается, можно использовать заголовок свойство (которое имеет тип Object) в качестве DataContext для DataTemplate (задано, как показано выше):
Style headerStyle = (Style)Resources["ColumnHeaderStyle"];
DataGridTextColumn col = new DataGridTextColumn();
col.HeaderStyle = headerStyle;
col.Header = myHeaderDataContext; // DataContext for ColumnHeaderStyle
dataGrid.Columns.Add(col);