ありがちな解説だと
<Style TargetType="DataGridColumnHeader">
<Setter Property="Foreground" Value="Red" />
</Style>
などとするように書いてあるが、単純にバインドした DataGrid ではこれでは変更できない。
ChatGPT による解説
通常、DataGrid.ColumnHeaderStyle で Foreground を設定すれば DataGridColumnHeader に適用されますが、ヘッダーのコンテンツ (Content) が string の場合、ContentPresenter によって描画されるため、Foreground が適用されません。
そのため、TextBlock を明示的に Header に入れる必要があります。
したがってheader構造を直接指定する必要がある。
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}">
<DataGridTextColumn.Header>
<TextBlock Text="Name" Foreground="White"></TextBlock>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>