Well, I won't go as far as saying that this is "very poor form". I think it's okay.
For simplicity, consider a ListBox for instance. If you are adding items to it manually, you'll end up with something like this:
<ListBox>
<ListBoxItem IsSelected="{Binding IsSelectedProperty}">Item1</ListBoxItem>
<ListBoxItem IsSelected="{Binding IsSelectedProperty}">Item2</ListBoxItem>
<ListBoxItem IsSelected="{Binding IsSelectedProperty}">Item3</ListBoxItem>
</ListBox>
This looks "ok" right? You're binding directly from the actual control (i.e. ListBoxItems) to a property in your ViewModel. This somewhat answers your question. This is another way of binding the IsSelected property. You'll have to manually add items to the control though. And I'm not sure though how you're going to do this in a DataGrid.
Now, if you're going to specify an ItemsSource for the ListBox (or a DataGrid for that matter), you are somewhat telling the ListBox to auto-generate the ListBoxItems for you. And since you want the "IsSelected" property of all the ListBoxItems to be bound to your ViewModel, it makes perfect sense to define it in a Style.