title: Should I pass just data or the whole instance that generates data between view models?
body: <p>My main view consists of a user control (UC1) and a corresponding <code>UCViewModel1</code> that's responsible to select ip address and setup rtsp client, initialize it and subscribe to a <code>FrameReceived</code> event. My other user control (UC2) and its corresponding <code>UCViewModel2</code> is responsible to show frames received in <code>UCViewModel1</code>. My design is to use a built-in mediator <code>CommunityToolkit.Mvvm.ComponentModel.Messenger</code> to send those frames from <code>UCViewModel1</code> to <code>UCViewModel2</code>.</p>
  <p><a href="https://i.stack.imgur.com/4Zrcf.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/4Zrcf.png" alt="enter image description here" /></a></p>
  <p>In the future I might have other user controls that should also receive those frames.</p>
  <p>My question is, from MVVM stand pont, is it better to pass the <code>rtsp client</code> instance to each <code>ViewModel</code> so each view model will subscribe to the <code>FrameReceived</code> event instead of passing the frames with <code>Messenger</code>?</p>