To manage this behaviour you can use the Context property of the datagrids. To create a situation in which it datagrid A listens to both, use the settings you described:
To create a situation in which A listens to B or C, use the following settings:
I never used context over 3 datagrids, but I suppose it must work this way.