DataGridの選択を無効(Disable)にする
DataGridのデフォルトでは行やセルを選択することができるので、閲覧のみ可能な一覧を表示したいだけといった場合、クリック時の選択やフォーカスを無効にする必要があります。
コード
対応としては、DataGridRowとDataGridCellのFocusableをfalse、Style.Triggersで選択時の背景色やフォントの設定を上書きするようにします。
<DataGrid AutoGenerateColumns="False" CanUserAddRows="False" AlternatingRowBackground="#f8f8f8">
<DataGrid.ItemContainerStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="Focusable" Value="false"/>
</Style>
</DataGrid.ItemContainerStyle>
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Focusable" Value="false"/>
<Style.Triggers>
<Trigger Property="DataGridCell.IsSelected" Value="True">
<Setter Property="BorderBrush">
<Setter.Value>
<SolidColorBrush Color="Transparent"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="Transparent"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="商品名" Binding="{Binding Name}" Width="200"/>
<DataGridTextColumn Header="金額" Binding="{Binding Price}" Width="100"/>
<DataGridTextColumn Header="備考" Binding="{Binding Description}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
Focusableをfalseに設定しただけでは、クリック時に行の背景色が変化してしまうので、合わせてStyle.Triggersの設定を行うと、閲覧のみ可能な一覧が表示できます。