I would suggest you investigate using an EventAggregator (
Prism EventAggregator Sample[
^]). You want to have a controller that will give each UserControl Update privilages. So, an EventAggregator message is is sent to the controller requesting control, then the controller will grant the request with another EventAggregator message. When a user control is finished, it sends an EventAggregator message to the controller releasing the token (so to speak). etc. etc.