Я использую MVVM и привязываю datagrid к коллекции с помощью некоторого кода:
<DataGrid ItemsSource="{Binding Entites}" AutoGenerateColumns="False" IsSynchronizedWithCurrentItem="True"
SelectedItem="{Binding SelectedEntity}">
Я также использую привязку к IsSelectedProperty с использованием стиля (RowStyle или ItemContainerStyle)
<DataGrid.RowStyle>
<Style>
<Setter Property="DataGridRow.IsSelected" Value="{Binding IsSelectedProperty, Mode=TwoWay}" />
</Style>
</DataGrid.RowStyle>
Он работает хорошо. Но если я прокручиваю сетку данных вниз и вверх, она перестает работать.