I uses MVVM and I bind datagrid to collection with some code:
<DataGrid ItemsSource="{Binding Entites}" AutoGenerateColumns="False" IsSynchronizedWithCurrentItem="True"
SelectedItem="{Binding SelectedEntity}">
And I aslo use binding to IsSelectedProperty using style (RowStyle or ItemContainerStyle)
<DataGrid.RowStyle>
<Style>
<Setter Property="DataGridRow.IsSelected" Value="{Binding IsSelectedProperty, Mode=TwoWay}" />
</Style>
</DataGrid.RowStyle>
It works well. But if I scroll datagrid down and up, it stops working.