バージョン

BeforeSortChange イベント

並べ替えインジケーターが変更される前に発生します。
シンタックス
'宣言
 
Public Event BeforeSortChange As BeforeSortChangeEventHandler
public event BeforeSortChangeEventHandler BeforeSortChange
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、BeforeSortChangeEventArgs 型の引数を受け取りました。次の BeforeSortChangeEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
Band バンド(読み取り専用)。
Cancel System.ComponentModel.CancelEventArgsから継承されます。 
ProcessMode 並べ替えの処理モード。
SortedColumns ソート済み列(読み取り専用)
解説

band 引数は、並べ替えられるUltraGridBandオブジェクトへの参照を返します。この参照を使用して、返されるバンドのプロパティまたはメソッドにアクセスできます。

UltraGrid では、コントロールがバンド内の行をプリロードできる場合に限り、コードを記述せずに列の内容を自動的に並べ替えることができます。プリロードは、バンドにバインドされたレコードセットの行数が1000行未満の場合はデフォルトで有効になります。行をプリロード せずにコントロールで列の並べ替えを提供する場合は、BeforeSortChange イベントと AfterSortChange イベントを使用して独自に列の並べ替えを実装する必要があります。

SortedColumns コレクションは、並べ替えているクローンされた UltraGridColumn オブジェクトへの参照を取得するために使用できます。この参照を使用して、返されたコレクションのプロパティまたはメソッドだけでなく、コレクション内のオブジェクトのプロパティまたはメソッドにもアクセスできます。

cancel 引数を使用して、列が並べ替えられないようにプログラミングできます。一定の条件が満たされない限り、ユーザーが列を並べ替えられないようにすることが可能です。

提供された cancel を True に設定しなければ、このイベントの後に AfterSortChange イベント(並べ替え操作が完了した後に発生するイベント)が発生します。

使用例
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
using Infragistics.Shared;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
using System.Diagnostics;

private void ultraGrid1_BeforeSortChange(object sender, Infragistics.Win.UltraWinGrid.BeforeSortChangeEventArgs e)
{

	// ユーザーが列によって行を並べ替えるか、列によって行をグループ化するときに
	// BeforeSortChange イベントが発生しますユーザーが行を並べ替えるか、グループ化する方法を処理するには、
	// BeforeSortChange イベントを使用できます渡されたイベント引数の SortedColumns パラメーターは 
	// すべてのグループ化列および並べ替え列 (その順序で) を 
	// 含みます
	
	int i;
	int numberOfGroupByColumns = 0;

	// 注: SortedColumnsCollection でグループ化列はグループ化されていない列
	// の前にリストされています(グループ化列がグループ化されていない列の後に
	// 追加されたかどうかに関係なく)

	// 並べ替えた列コレクションをトラバースすると、グループ化列の数を
	// 取得します
	for ( i = 0; i < e.SortedColumns.Count; i++ )
	{
		if ( e.SortedColumns[ i ].IsGroupByColumn )
			numberOfGroupByColumns++;
		else 
			break;
	}

	// グリッドの変更を実行しないために、イベントをキャンセルします
	if ( numberOfGroupByColumns > 2 )
	{
		// 2 つ以下のグループ化列の制限を設定します
		e.Cancel = true;
		return;
	}

	// 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;
	this.ultraGrid1.Cursor = Cursors.WaitCursor;

}
参照