XAML中的依赖注入(WPF)

时间:2010-05-04 11:21:36

标签: xaml dependency-injection

我正在创建一个新的WPF项目,我们使用Microsoft Unity作为DI。

我正在调用第三方服务的用户控件。

现在,如何从主窗口XAML为用户控件注入依赖项。

1 个答案:

答案 0 :(得分:0)

您可以使用服务定位器模式。我将它用作Unity作为DI。

internal class ServiceLocator
{
    [...]
    public MainViewModel Main { get { return container.Resolve<MainViewModel>(); } }
}

您可以按照自己想要的方式对类进行实例化(DI或不是,类初始化DI等...)。

在App.xaml中

<Application.Resources>
        <vm:ServiceLocator x:Key="Locator"/>
    </Application.Resources>

现在,您可以设置datacontext

DataContext="{Binding Main, Source={StaticResource Locator}}"

编辑:

我找到了另一种方法(其中包括): 看看this article。在命令中,您可以根据需要解析视图模型。