What is the best to use MVVM to achieve UI development separation?

As I discovered MVVM model for UI binding in UE, I was considering the next logic:

  1. Actor has some data that it wants to expose.
  2. The data model is implemented in VM
  3. Actor is initialising the VM OnBegin.
  4. UI Widgets can get the data from the VM.

In this flow, you never directly set the VM to a specific widget.

But, there is an issue about accessing the VM instance from the Widget. I want to be able to work on UI and check what VMs I have access to.

So, for this case most of the VM creation types are discarded (Create Instance makes its own instance instead of getting the one I want to expose, Global View Model Collection requires knowing the Identifier, and property path requires the path to the instance). The most promising thing is to have specific resolvers that allow you to get the proper instance or create one. But there is almost no examples of resolver-based setups online, so its hard to figure it out properly.

But I am not even sure if in UE this kind of workflow is preferred, or you should directly assign the VM to each widget, not the widgets being able to select from existing instances.

Is there any codebases that show some best practices of how people set it up for these needs?