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