2012-09-04 45 views
2

我有一個TabControl區域,我在這裏添加新的選項卡,拋出RequestNavigate方法。一切工作正常。但問題是,新選項卡被放在最右邊的位置。但我需要將它們添加到活動選項卡旁邊。所以,當我有10個打開的標籤,但活動是第一個標籤 - 我想添加新的打開標籤到第二個地方,並將其他標籤向右。 Thx很多PRISM RegionManager - TabControl標籤訂單

回答

2

好的,感謝Sam的解決方案https://stackoverflow.com/a/4285764/1027262我發現有一個IRegion類的SortComparison屬性,它負責排列區域內的視圖。

所以我的視圖類實現ISortableView接口,包含

public int SortIndex {get;set;} 

這SortIndex然後用於在地區分類視圖。 SortComparison方法看起來像這樣:

private static int CompareViews(object x, object y) 
{ 
    return ((ISortableView)x).SortIndex.CompareTo(((ISortableView)y).SortIndex); 
} 

this._regionManager.Regions["MyRegion"].SortComparison = CompareViews; 

然後,我不得不做服務類,即負責管理Views索引。我發送的父視圖索引拋出INavigationAware接口的OnNavigatedFrom方法。但要注意在OnNavigatedTo方法中設置SortIndex。這種方法稱爲AFTER區域對其視圖進行排序。