PRISM RegionManager - TabControl选项卡顺序

时间:2012-09-04 12:57:17

标签: wpf prism tabcontrol

我有一个TabControl区域,我在这里添加新的标签抛出RequestNavigate方法。一切都很好。但问题是,新标签放在右边的最后一个位置。但我需要在活动标签旁边添加它们。因此,当我有10个打开的选项卡,但是活动是第一个选项卡 - 我想将新打开的选项卡添加到第二个位置并将其他选项卡向右移动。很多

1 个答案:

答案 0 :(得分:2)

好的,感谢Sam的解决方案https://stackoverflow.com/a/4285764/1027262我发现有一个IRegion类的SortComparison属性负责对区域内的视图进行排序。

所以我的View类实现了包含

的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; 

然后我必须创建服务类,负责管理视图索引。父视图索引我正在发送抛出OnNavigatedFrom方法的INavigationAware接口。但请注意在OnNavigatedTo方法中设置SortIndex。此方法称为AFTER区域对其视图进行排序。