Ответ 1
Единственный способ, с помощью которого я работал, - установить столбцы самостоятельно (не используя AutoGenerate). Итак, первое, что нужно сделать, это определить столбцы:
<DataGrid x:Name="Frid" ItemsSource="{Binding Path=.}">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name"
Binding="{Binding Path=FirstName}">
</DataGridTextColumn>
<DataGridTextColumn Header="Last Name"
Binding="{Binding Path=LastName}">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
Затем вам нужно установить каждый столбец CellStyle и привязать фон к статическому ресурсу, который вы можете объявить в Window.Resources:
<Window x:Class="WpfApplication1.MainWindow" ...>
<Window.Resources>
<SolidColorBrush x:Key="clBr" Color="White" />
</Window.Resources>
...
Столбцы:
<DataGridTextColumn Header="First Name"
Binding="{Binding Path=FirstName}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background"
Value="{StaticResource clBr}" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
тогда вы можете просто управлять статическим ресурсом с помощью кода или манипуляции с помощью xaml.
Надеюсь, что это поможет.