我对如何使用 Unity 实例化 WPF 应用程序的 MainWindow 以及如何使用 UnityContainer 将依赖项注入我的应用程序的顶层有一个很好的想法。我缺少的是如何在多层设计中使用这种方法。
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
using (IUnityContainer container = new UnityContainer())
{
DataSet dataModel = new DataSet();
dataModel.Tables.Add(new DataTable("User"));
dataModel.Tables["User"].Rows.Add(dataModel.Tables["User"].NewRow());
container.RegisterInstance<IDataModel>(dataModel);
var window = container.Resolve<MainWindow>();
window.Show();
}
}
例如,我有一个“用户”组合框控件,它出现在任意数量的对话框和网格控件中。此“用户”组合框使用“用户集合”视图模型,该模型依赖于公共数据模型(出于所有意图和目的,所有对话框和网格控件都使用共享数据集)。由于主窗口不控制网格控件或 XAML 定义的控件的构造,我如何将我的通用数据模型注入到这个可重用的“用户集合”视图模型中?