Я не совсем уверен, почему триггер не будет влиять и на TextBox ForeGround, но обычно цвет выделения не должен быть активным, когда ячейка находится в режиме редактирования, так что это может быть причиной, по которой TextBox отклоняет значение, но Я не уверен. Вы увидите тот же эффект, если вы используете DataGridTextColumn и войдете в режим редактирования, TextBox не будет иметь передний план от Trigger, а TextBlock будет. Чтобы применить White ForeGround ко всем выбранным TextBox в DataGrid, вы можете сделать это (обратите внимание, что это также повлияет на TextBox, находящийся в режиме редактирования)
<DataGrid ...>
<DataGrid.Resources>
<Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}" >
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- Workaround for the TextBox -->
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGridCell}}, Path=IsSelected}" Value="True">
<Setter Property="Foreground" Value="White"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<!-- ... -->
</DataGrid>