Вам действительно нужен весь объект столбца?DataContext будет тем, что вы передадите в качестве заголовка, например
<DataGridTextColumn Header="Name" Binding="{Binding Name}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Foreground="Red" />
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
Это приведет к красному заголовку с текстом «Имя».
Если вам действительно нужен столбец, вы можете использоватьElementName
переплет:
<DataGrid ItemsSource="{Binding Data}">
<DataGrid.Columns>
<DataGridTextColumn x:Name="nameColumn" Header="Name" Binding="{Binding Name}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Foreground="Red">
<Run Text="{Binding Mode=OneWay}" />
<Run Text=" - " />
<Run Text="{Binding ActualWidth, ElementName=nameColumn, Mode=OneWay}" />
</TextBlock>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
Это показывает "Имя" и ширину столбца в заголовке.