Imports Infragistics.Shared
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinGrid
Private Sub UltraGrid1_BeforeSortChange(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.BeforeSortChangeEventArgs) Handles ultraGrid1.BeforeSortChange
' ユーザーが列によって行を並べ替えるか、列によって行をグループ化するときに
' BeforeSortChange イベントは発生されますユーザーが行を並べ替えるか、グループ化する方法を処理するには、
' BeforeSortChange イベントを使用できます渡されたイベント引数の SortedColumns パラメーターは
' すべてのグループ化列および並べ替え列 (その順序で) を
' 含みます
Dim i As Integer
Dim numberOfGroupByColumns As Integer = 0
' 注: SortedColumnsCollection でグループ化列はグループ化されていない列
' の前にリストされています(グループ化列はグループ化されていない列の後に
' 追加されたかどうかに関係なし)
' 並べ替えた列コレクションをトラバースすると、グループ化列の数を
' 取得します
For i = 0 To e.SortedColumns.Count - 1
If (e.SortedColumns(i).IsGroupByColumn) Then
numberOfGroupByColumns += 1
Else
Exit For
End If
Next
' グリッドの変更を実行しないために、イベントをキャンセルします
If numberOfGroupByColumns > 2 Then
' 2 つ以下のグループ化列の制限を設定します
e.Cancel = True
Return
End If
' BeforeSortChangeEventArgs イベント引数の ProcessMode プロパティを設定すると、
' 行の並べ替えおよびフィルタリングは同期に実行するか、非同期に実行するかどうかを指定します
' グリッドのレコードがおおあるで、並べ替えるときに砂時計を
' 表示する場合に便利になりますデフォルトでは、グリッドのバンドが展開されている時に
' そのバンドの行に遅延並べ替えおよび遅延フィルタリングを適用しますProcessMode プロパティが
' Synchronous または SynchronousExpanded に設定された場合に、すべてのバンドの行、
' またはすべてのバンドの展開された行は同期的に (一度に) 並べ替えてフィルターされることになります
' RowsCollection のオーバーロードされた EnsureSortedAndFiltered メソッドを使用すると、
' 同期的に並べ替えおよび同期的にフィルタリングを適用するまでのバンド階層のレベル (深さ) を指定できます
' ProcessMode を Lazy に設定すると、グリッドは、バンドが展開されたときに行に
' 遅延並べ替えおよび遅延フィルタリングを適用することを指定しますこれはグリッドのデフォルト動作です
e.ProcessMode = ProcessMode.Lazy
' ProcessMode を Synchronous に設定すると、グリッドは、すべてのバンドですべての行に
' 同期的に並べ替えおよびフィルタリングを適用することを指定します
e.ProcessMode = ProcessMode.Synchronous
' ProcessMode を SynchronousExpanded に設定すると、グリッドは、すべてのバンドで
' すべての展開された行に同期に並べ替えおよびフィルタリングを適用することを指定します
e.ProcessMode = ProcessMode.SynchronousExpanded
' このコードは、並べ替え操作で待機カーソルを表示することを指定し、
' 砂時計が表示されている間にすべての行がすべてのバンドで並べ替えたことを確認しますカーソルはグリッドの AfterSortChange イベントで
' リセットされます
e.ProcessMode = ProcessMode.Synchronous
Me.ultraGrid1.Cursor = Cursors.WaitCursor
End Sub