Keep calm and see example on github :)
https://github.com/samueldjack/SelectedItemsBindingDemo/blob/master/MultiSelectorBehaviours.cs
This example based on using behaviours.
It is powerfull approach which can resolve many problem in MVVM.
You need 3 files from example: IListeItemConverter.cs, MultiSelectorBehaviour.cs, TwoListSynchronizer.cs. Copy it to your project.
then you must define namespace in your view
xmlns:conv="clr-namespace:[MultiSelectorBehavourNamespace]"
after it you can use MultiSelectorBehaviour in ListView
<ListView DockPanel.Dock="Top" conv:MultiSelectorBehaviours.SynchronizedSelectedItems="{Binding SelectedItems}"/>
course you need also define SourceItems property in your ViewModel
private ObservableCollection<YourItemType> selectedItems = new ObservableCollection<YourItemType>();
public ObservableCollection<YourItemType> SelectedItems
{
get { return selectedItems; }
set
{
if (selectedItems != value)
{
selectedItems = value;
RaisePropertyChanged(() => SelectedItems);
}
}
}