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