【发布时间】:2011-07-25 23:41:36
【问题描述】:
我有一个选项卡式应用程序,我希望用户能够在其中搜索一个人,然后在新视图中显示该人的详细信息。用户应该能够为不同的人打开多个人的详细信息视图。
我有点不确定我是否按照正确的程序创建新视图。使用 Unity(我不是),您似乎会调用 Container.Resolve(view),但是我正在执行以下操作,为了创建视图/视图模型中的导入,必须使用 meetImports。
PersonDetailView view = new PersonDetailView();
_container.SatisfyImportsOnce(view);
_regionManager.Regions["MainRegion"].Add(view, this.SelectedPerson.Name);
_regionManager.RequestNavigate("MainRegion", new Uri("PersonDetailView", UriKind.Relative));
在我的 PersonDetailView 代码中,我有以下属性来设置数据上下文。
[Import]
public PersonDetailsViewModel ViewModel
{
set
{
this.DataContext = value;
}
}
这似乎可行,但我遇到的问题是,当我创建第二人称视图时,新视图会获得与已经创建的视图相同的数据上下文实例。
这是因为我创建的视图不正确,还是有办法告诉 MEF 在完成新视图的导入时创建一个新对象?
【问题讨论】: