我指的是线程 View not connecting to ViewModel using MEF。
我有类似的场景,但有几个插件。这个应用程序由几个模块组成,Shell定义了主要区域。每个模块都有一个视图(UserControl)和视图模型,视图按需加载到外壳区域中。问题是视图是由子用户控件组成的,每个子用户控件都有自己的ViewModel。因此,我选择在视图中定义的范围区域中注入子控件,因为我可以拥有视图的多个实例。
但不知何故,我不能通过使用MEF。
以下是伪代码和应用程序结构。
1. 1.Shell定义了Mainregion。父视图按需加载到此MainRegion表中。
<ContentControl prism:RegionManager.RegionName ="FooChildRegion" />
的初始化方法中导入构造函数
IRegion foochildregion = this._regionManager.Regions["FooChildRegion"]; //This blows.
FooChildView fooChildView = new FooChildView();
IRegionManager allocationViewRegionManager = foochildregion .Add(fooChildView , null, true);
foochildregion .Activate(fooChildView );当模块在启动时初始化并按需加载视图时,用于获取FooChildRegion实例的第一行将失败。
你知道我错过了什么吗?
发布于 2014-12-05 03:57:36
我有办法解决这个问题。在Parent中,我将ContentControl定义为
<ContentControl x:Name="FooChildContentControl" />然后,在父控件后面的代码中,我创建了一个新的regionManager实例,并将子控件设置为under
IRegionManager regionManager = ServiceLocator.Current.GetInstance<IRegionManager>();
RegionManager rm = new RegionManager();
RegionManager.SetRegionManager(this.FooChildContentControl, rm);
RegionManager.SetRegionName(this.FooChildContentControl, "FooChildRegion");
rm.RegisterViewWithRegion("FooChildRegion", typeof(fooChildView ));https://stackoverflow.com/questions/27295684
复制相似问题