Warning: Please consider that this post is over 10 years old and the content may no longer be relevant.
I wasted a few development hours discovering this strange behaviour when binding to the IsChecked property of a RadioButton in WPF when using MVVM. You can read about the issue on the MSDN forum, but from my experience if you have a two way binding on the is IsChecked property of a RadioButton which is part of a group, then after you set the bound property in code a couple of times, the RadioButton loses it’s binding all together.
Here is my original code that kept losing it’s binding:
You could use OneWay binding on IsChecked to set the RadioButton state from code, then bind the Command property to a Command when user clicks on the RadioButton.
My preferred option: (as suggested by karliwatson) use a ListBox for the grouping and bind the ListBoxItem’s IsSelected property to your ViewModel, then bind the RadioButton’s IsChecked property to the list box item’s IsSelected property. Don’t set a group on the RadioButton.