Вместо Datagrid я использовал ListView, который содержал GridView.Вот учебник , с которого я начал.(Я не очень много работал с Datagrid, поэтому я не знаю, есть ли какие-то большие различия)
Упрощенная версия того, с чем я работаю:
<ListView ItemsSource="{Binding}" x:Name="lstItems"
PreviewMouseLeftButtonDown="lstActions_PreviewMouseLeftButtonDown"
PreviewMouseLeftButtonUp="lstActions_PreviewMouseLeftButtonUp">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Height" Value="30" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView x:Name="gridView">
<GridViewColumn Width="140" Header="Name" DisplayMemberBinding="{Binding DisplayName}" />
<GridViewColumn Width="240" Header="Description" DisplayMemberBinding="{Binding Description}" />
</GridView>
</ListView.View>
</Listview>