SPREAD for WPF 3.0J - GcSpreadGrid
ソートの基本
GrapeCity SPREAD for WPF 3.0J > 開発者ガイド > ソート > ソートの基本

ユーザーが列ヘッダをクリックしたとき、クリックした列の値で一覧の表示順序を並び替えるように設定できます。

基本のソート

この操作をすべての列で有効にするには、コントロールの CanUserSortColumns プロパティを true に設定します。特定の列に対して有効にするには、列の CanUserSort プロパティを true に設定します。

複数列による並び替え

ユーザーは [Ctrl] キーを押しながら複数の列で並び替えを実行できます。

イベント

並び替えが実行されたとき、コントロールの Sorted イベントが発生します。

固定行をソート対象外

先頭および末尾の行が固定されているとき、SortIgnoreFrozenRows プロパティを使用して固定行をソートの対象外とするかどうかを設定できます。ソートの対象外とするにはこのプロパティを true に設定します。

インジケータ

並び替えを実行したとき、列ヘッダに並び替え順(昇順/降順)を示すインジケータが表示されます。インジケータに関する設定は次のとおりです。

プロパティ 説明
ShowSortIndicator 各列でインジケータを表示するかどうか設定します。
SortIndicatorIndex 複数行の列ヘッダで、インジケータをどの行に表示するかを設定します。すべての列に対して設定するには列ヘッダの SortIndicatorIndex プロパティを、特定の列に対して設定するには列の SortIndicatorIndex プロパティを設定します。

並び替えた列を取得

コントロールの SortDescriptions プロパティで並び替えた列の情報のコレクションを参照できます。

サンプルコード

次のサンプルコードは Sorted イベントで並び替えた列のインデックスと並び順(昇順/降順)を取得します。

XAML
コードのコピー
<sg:GcSpreadGrid  Name="gcSpreadGrid1" Sorted="gcSpreadGrid1_Sorted"/>
C#
コードのコピー
private void gcSpreadGrid1_Sorted(object sender, EventArgs e){
    foreach (SpreadSortDescription sinfo in gcSpreadGrid1.SortDescriptions)
        Debug.WriteLine(string.Format("Sorted by Column:{0}, Direction:{1}", sinfo.ColumnIndex, sinfo.Direction));
}
Visual Basic
コードのコピー
Private Sub gcSpreadGrid1_Sorted(sender As System.Object, e As System.EventArgs)
    For Each sinfo As SpreadSortDescription In gcSpreadGrid1.SortDescriptions
        Debug.WriteLine(String.Format("Sorted by Column:{0}, Direction:{1}", sinfo.ColumnIndex, sinfo.Direction))
    Next
End Sub

自動ソート

デフォルトでは、ソートを実行した後でデータを入力または変更すると、新たなデータにもとづいてソート処理が自動的に実行されます。セルの入力直後に自動的にソートが行われるため、データ入力作業中にこの動作を抑止したい場合は、AutoSortFilter プロパティを false に設定します。

関連トピック