4 Stimmen

Dependency Injection in XAML (WPF)

Ich bin dabei, ein neues WPF-Projekt zu erstellen und wir verwenden Microsoft Unity als DI.

Ich habe eine Benutzersteuerung, die einen Drittanbieterdienst aufruft.

So jetzt, wie man Abhängigkeit vom Hauptfenster XAML für das Benutzerkontrol injizieren.

0voto

Daniel Punkte 8734

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X