I suggest you read this question (and my answer) as it is similar, but not quite to your problem. It deals with communicating properties between parent / child ViewModel objects.
Let's look at a basic example:
ViewModelA is parent and must present Sum of some property on BViewModelB is a child and has a property that requires summation
Thus, the user makes a request to edit the property on B, and the request is successful, so B supposedly changes the value of his property and fires the PropertyChanged event.
ViewModelA can subscribe to events for all children, but, going this way, I do not like it. When children are added and removed, you have a lot of bookkeeping.
Putting A into B is cleaner, but you still have a lot of bookkeeping. What to do if you have the action “Clear children” on A? You must remember that you need to get rid of the parental relationship from B to A in all cases. Nevertheless, this is better than the events, in my opinion, because they are more pronounced.
Personally, I like the idea of messaging. I am more familiar with MVVM Light messenger than with Prism, but this is the same idea ... a global message bus. Anytime, any B can say: "I changed my property!" and then A listens for the notification and calculates itself. I think this is your cleanest solution with much less bookkeeping.
source share