2010-01-19 146 views
0

使用Silverlight &棱鏡。 我一個TabControl中創建一個新的局部區域,像這樣:如何獲取區域名稱?

IRegionManager regionManager = tabControl.Add(viewRegions, UNIQUEID, true); 

然後從TabControl的SelectionChanged事件我想獲得該地區的名稱。 所以我去:

TabItem item = e.AddedItems[0] as TabItem; 
FrameworkElement view = item.Content as FrameworkElement; 
IRegionManager xxx = RegionManager.GetRegionManager(view); 

所以現在我有範圍的區域經理在手= XXX!

但我如何得到它的名字? (我分配給它的「UNIQUEID」參數)。

如何?

+0

您的評論如下表明,我試圖回答的問題不是你問的問題。你能否以某種方式重新說明這一點,以便我能理解你想要做什麼? – thepaulpage

+0

看看我上面的代碼... 當添加一個作用域的區域時,它被賦予一個名稱。在我上面的例子中,名稱是「UNIQUEID」參數。 然後我想從其他類中檢索該名稱。 我得到範圍區域管理器(在我的例子中是「xxx」)。 我如何得到它的名字? – shemesh

+0

你會做我剛纔所說的。您必須通過IRegionManager的區域列表:xxx.Regions – thepaulpage

回答

0

如果你有RegionManager和View,那麼你可以得到區域Name(但我不知道你爲什麼要這樣做)。如果你像這樣循環遍歷regionmanger,你可以得到你想要的。您將不得不圍繞範圍的RegionManager進行參考,但是沒有辦法解決這個問題。 (有一些額外的代碼演示別人可能想要做的其他事情)

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 
       { 
      } 
     } 
    } 
+0

抱歉,但這不適合我。 當我在一些其他區域(在我的情況下是一個TabControl)添加範圍區域新添加的範圍區域不在_RegionManager.Regions內。 – shemesh

+0

我知道。我在說,你必須通過作用域區域,就像你沒有得到你想要的那樣_RegionManager – thepaulpage

+0

。我如何知道範圍域名? – shemesh