3

我有一个 TabControl 区域,我在其中添加新选项卡会抛出 RequestNavigate 方法。一切正常。但问题是,新标签被放置在右边的最后一个位置。但我需要将它们添加到活动标签旁边。因此,当我有 10 个打开的选项卡,但第一个选项卡处于活动状态时 - 我想将新打开的选项卡添加到第二位并将其他选项卡向右移动。多谢

4

1 回答 1

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; 

然后我必须制作服务类,负责管理 Views 索引。我发送的父视图索引抛出 INavigationAware 接口的 OnNavigatedFrom 方法。但请注意在 OnNavigatedTo 方法中设置 SortIndex。此方法称为 AFTER region sort its views。

于 2012-09-10T19:44:38.973 回答