That is a lot of models for your VM to depend on. You can inject all those on the constructor, this makes the dependence more explicit and visible. Or you can have the VM resolve the various models from the Unity container:
public ViewModel(IUnityContainer container)
{
IQuoteSource model1 = container.Resolve<IQuoteSource>();
... etc ...
}
When a concrete instance is resolved using Unity and you have not specified any constructor parameters in the Resolve() call, Unity will examine the constructors from most complicated to most basic, if it finds one that takes a Unity container then it will use it (it will potentially use others first if it finds them).1 So if your VM takes a Unity container in the constructor, it can then use that container to further resolve anything it needs.
有些人可能会争辩哪一种方法更合适——直接注入所有必要的附属设施,或只注射有依赖的集装箱。 IMVHO两种方法都有积极和消极之处,无论哪一种方法更适合你的风格。
You could also consider refactoring your code somewhat, maybe introduce a new Model that is a facade over several existing models. The other possibility is what you have termed a Model may actually be more suitable as a service (a tell-tale sign of this is if the model is used in several places to fetch data from a specific source, if this is the case then you can separate out that functionality into a service and cart that around in the Unity container for it to be consumed as necessary).
1 Reference: Telling Unity Which Constructor to Use when Initializing a Class