Managing Contact Collections
If I understand correctly what you're doing, I think what you need is a UserControl that encapsulates some AddressBookCommand, ClearCommand, NextCommand and PreviousCommand commands.

Your main view would have 3 instances of that control, one for each field ("To", "CC", "BCC"), and each would have its own data context, some IList&lt;Contact&gt; I'd guess.

Also you're not showing your entire class so it's hard to tell, but since you mention MVVM I believe a lot of this code belongs in a ViewModel class, not in the View's code-behind; the XAML markup uses DataBinding markup extensions to bind visual element properties to properties in the ViewModel - the Window's DataContext property is set to the instance of the ViewModel class.

The reason I mention this, is because ideally in MVVM the View should only be caring for presentation concerns, which clearly Details.Recipients.Add(Recipient); isn't.