Data binding typically maintains one "currency" for each binding source. I suspect what you are seeing here, is that you are trying to have one binding source (the VMB) that is bound to two controls (the datagrids) that both want to maintain currency. That is probably confusing data binding.
That's just a guess, and it would depend a great deal on how your binding and VMB are implemented.
For my part, I'd probably use two VMs, and chain them using data binding. That's how you connect one VM to another.
Assuming both VM objects are resources, declare the first one first and the second one second. Then use a binding expression to set the Model property of the second one to the appropriate property of the first one to get the model.
I do this in the MVVMExperimentSL sample project
<this:DataListViewModel x:Key="ListModel" />
<this:DataViewModel x:Key="DetailModel" Model="{Binding Source={StaticResource ListModel}, Path=SelectedData}"/>
Copyright (c) Marimer LLC