You can use the service locator pattern. I use it with Unity as a DI.
internal class ServiceLocator
{
[...]
public MainViewModel Main { get { return container.Resolve<MainViewModel>(); } }
}
You may be interested in your class the way you want (DI or not, the class initializes DI, etc.).
In your App.xaml
<Application.Resources>
<vm:ServiceLocator x:Key="Locator"/>
</Application.Resources>
And now you can set your datacontext
DataContext="{Binding Main, Source={StaticResource Locator}}"
Edit:
( ):
. , .