2011-06-15 117 views
14

我知道,我可以得到所有的注册的视图在一个地区有:如何使用PRISM获取当前活动视图?

var vs = mRegionManager.Regions[RegionNames.MainRegionStatic].Views.ToList(); 

,我可以看到有下面的代码:

mRegionManager.Regions[RegionNames.MainRegionStatic].ActiveViews 

这是给Active View的名单,但我将我的区域连接到始终具有单个ActiveView的ContentControl。我误解了,还是有办法获得单一的活动视图?

回答

12

var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault();

+0

伟大的工作,但它是如何,我们有一个集合呢? – 2011-06-15 14:27:22

+2

因为[SingleActiveRegion](http://msdn.microsoft.com/en-us/library/microsoft.practices.composite.presentation.regions.singleactiveregion.aspx)继承区域 – 2011-06-15 14:33:12

+0

有没有办法使用IoC获取现有的VM容器(在我的情况下DryIoc)?我从'ShellViewModel'尝试了'这个== _Container.Resolve ',并将其计算为'false'。 – Shimmy 2017-11-27 17:09:46

5
var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault(); 

这是不正确的,因为这将只是把那得到了第一次启动任何看法。不是当前活动/可见视图。

尽管没有找到直接的解决方案,但它并不涉及View或ViewModel的自定义实现。

+0

有趣! ,但当时正是我需要的。你能提供更多细节吗? – 2011-12-06 21:36:12

相关问题