Silverlight 如何获取区域名称?
使用Silverlight和Prism。 我在TabControl中创建了一个新的作用域,如下所示:Silverlight 如何获取区域名称?,silverlight,prism,Silverlight,Prism,使用Silverlight和Prism。 我在TabControl中创建了一个新的作用域,如下所示: IRegionManager regionManager = tabControl.Add(viewRegions, UNIQUEID, true); 然后从选项卡Control SelectionChanged事件中,我想获取该区域的名称。 所以我说: 因此,现在我手头上有一个作用域区域管理器=xxx 但是我怎么知道它的名字呢?(我分配给它的“UNIQUEID”参数) 如何操作?如果您有Re
IRegionManager regionManager = tabControl.Add(viewRegions, UNIQUEID, true);
然后从选项卡Control SelectionChanged事件中,我想获取该区域的名称。
所以我说:
因此,现在我手头上有一个作用域区域管理器=xxx
但是我怎么知道它的名字呢?(我分配给它的“UNIQUEID”参数)
如何操作?如果您有RegionManager和视图,那么您可以获得区域名称(但我不知道您为什么想要)。如果你像这样环游整个区域,你可以得到你想要的。您必须保留对作用域RegionManager的引用,但这是无法避免的。(有一些额外的代码演示了其他人可能也想做的事情)
对不起,这对我不起作用。当我在其他区域(在我的例子中是TabControl)内添加一个作用域时,新添加的作用域不在_RegionManager.Regions内。我知道这一点。我的意思是,你必须像你一样通过作用域,区域管理者不明白你的意思。我如何知道作用域名称?您下面的评论表明,我试图回答的问题不是您所问的问题。你能不能用某种方式重新表述一下,让我明白你想做什么?看看我上面的代码。。。添加作用域时,会为其指定一个名称。在我上面的示例中,名称是“UNIQUEID”参数。然后,稍后我想从另一个类中检索该名称。我找到了范围区域管理器(在我的示例中为“xxx”)。我怎么知道它的名字?你就照我说的做吧。您必须查看IRegionManager的区域列表:xxx。区域这样做将给出“xxx”内的区域。我正在寻找什么是“xxx”名称。您想要的是分配给该视图的标识符,而不是区域本身的名称。你想要这个有什么原因吗?有一个很好的机会,你将不得不跟踪自己。
TabItem item = e.AddedItems[0] as TabItem;
FrameworkElement view = item.Content as FrameworkElement;
IRegionManager xxx = RegionManager.GetRegionManager(view);
private void UnloadRegion()
{
foreach (IRegion region in xxx.Regions)
{
for (int ix = region.ActiveViews.Count() - 1; ix >= 0; ix--)
{
if (WhateverYourCurrentViewIs == region.ActiveViews.Last())
{
string RegionName = region.Name;
//there is the name
{
}
}
}