Ну, я не пойду настолько далеко, чтобы сказать, что это "очень плохая форма".Я думаю, что все в порядке.
Для простоты рассмотрим, например, ListBox.Если вы добавляете элементы к нему вручную, вы получите что-то вроде этого:
<ListBox>
<ListBoxItem IsSelected="{Binding IsSelectedProperty}">Item1</ListBoxItem>
<ListBoxItem IsSelected="{Binding IsSelectedProperty}">Item2</ListBoxItem>
<ListBoxItem IsSelected="{Binding IsSelectedProperty}">Item3</ListBoxItem>
</ListBox>
Это выглядит "хорошо", верно?Вы привязываете непосредственно из фактического элемента управления (то есть ListBoxItems) к свойству в вашей ViewModel.Это несколько отвечает на ваш вопрос.Это еще один способ привязки свойства IsSelected.Вы должны будете вручную добавить элементы в элемент управления.И я не уверен, однако, как вы собираетесь это сделать в DataGrid.
Теперь, если вы собираетесь указать ItemsSource для ListBox (или DataGrid в этом отношении), вынесколько сказать ListBox для автоматической генерации ListBoxItems для вас.И поскольку вы хотите, чтобы свойство IsSelected элемента all объекта ListBoxItems было привязано к вашей ViewModel, имеет смысл определить его в стиле.