【发布时间】:2014-11-21 03:37:09
【问题描述】:
我尝试使用 PRISM 和 UNITY 实现我的第一个应用程序。 所以我尝试将我的应用程序拆分为几个模块。
在我的模块中,我有相关的视图以及视图模型。
目前我实例化我的视图模型并在后面的视图代码中设置我的视图的数据上下文:
public partial class View : UserControl
{
public View(IViewModel vm)
{
InitializeComponent();
this.DataContext = vm;
}
}
我的模型是使用我的视图模型 ctor 中的统一容器实例化的。
public ViewModel(IEventAggregator eventAggregator, IUnityContainer container)
{
_eventAggregator = eventAggregator;
_model = container.Resolve<Model>();
this._model.PropertyChanged += new PropertyChangedEventHandler(OnModelPropertyChanged);
}
在使用统一容器之前,我通过 ViewModels 构造函数通过依赖注入来注入模型。
但这似乎不起作用。我尝试了以下方式:
public ViewModel(IEventAggregator eventAggregator, Model model)
{
_eventAggregator = eventAggregator;
_model = model
this._model.PropertyChanged += new PropertyChangedEventHandler(OnModelPropertyChanged);
}
这个实现给了我一个例外,我也不知道如何设置容器,以便模型注入按照我尝试的方式工作。
我想做的是在模块类中实例化我的模型。从那里我想将它注入我的视图模型。
所以我的问题是:
- 我目前的做法是否正确?
- 有没有办法在模块类中实例化模型并将它们注入到视图模型中,如果是的话,如何以及网络上有任何示例?
【问题讨论】:
标签: c# mvvm dependency-injection unity-container prism