我正在创建一个新的WPF项目,我们使用Microsoft Unity作为DI。
我正在调用第三方服务的用户控件。
现在,如何从主窗口XAML为用户控件注入依赖项。
答案 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。在命令中,您可以根据需要解析视图模型。