Другие ответы см. в этом посте , но ответ, который мне понравился, был в самом низу, поэтому я повторю его здесь более подробно
Этот ответ был: не используйте DataGridCheckBoxColumn.Больше не нужно просто ставить флажок в столбце DataGridTemplate.Когда вы делаете это, он реагирует на один щелчок точно так, как вы хотите.В приведенном ниже примере IsSelected - это просто пользовательское свойство bool в моей ViewModel, все остальное - чистый xaml.
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelected, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>