Sie können das Muster des Dienstes Locator verwenden. Ich verwende es mit Unity als DI.
internal class ServiceLocator
{
[...]
public MainViewModel Main { get { return container.Resolve<MainViewModel>(); } }
}
Sie können Ihre Klasse intantisieren, wie Sie wollen (DI oder nicht, die Klasse initialisiert die DI etc...).
In Ihrer App.xaml
<Application.Resources>
<vm:ServiceLocator x:Key="Locator"/>
</Application.Resources>
Und jetzt können Sie Ihren Datentext einstellen
DataContext="{Binding Main, Source={StaticResource Locator}}"
Editar:
Ich habe einen anderen Weg gefunden, dies zu tun (neben anderen): Werfen Sie einen Blick auf dieser Artikel . In dem Befehl können Sie Ihr Viewmodel nach Belieben auflösen.