3

TabControlリージョンがあり、新しいタブを追加してRequestNavigateメソッドをスローします。すべてが正常に機能しています。ただし、問題は、新しいタブが右側の最後の位置に配置されることです。しかし、アクティブなタブのすぐ隣にそれらを追加する必要があります。したがって、開いているタブが10個あるが、アクティブなのが最初のタブである場合、新しく開いたタブを2番目の場所に追加し、他のタブを右に移動します。ありがとう

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; 

次に、ビューインデックスの管理を担当するサービスクラスを作成する必要がありました。INavigationAwareインターフェースのthrowOnNavigatedFromメソッドを送信している親ビューのインデックス。ただし、OnNavigatedToメソッドでSortIndexを設定することに注意してください。このメソッドは、ビューをリージョンソートした後に呼び出されます。

于 2012-09-10T19:44:38.973 に答える