バージョン

並べ替え

このトピックでは、XamDataGrid コントロールによって実装できる並べ替えの動作を分かりやすく説明し、簡単に理解できるようにします。

このトピックの内容

前提条件

本トピックの理解を深めるために、以下のトピックを参照することをお勧めします。

トピック 目的

このトピックでは、XamDataGrid コントロールをビューに追加してサンプルデータを生成するための基本的な手順を紹介します。

このリソース トピックは、 XamDataGrid コントロールのデータソースを使用したサンプル データの実装を提供します。

概要

XamDataGrid コントロールを使用すると、 Column のレコードを並べ替えることができます。残りの列の関連コンテンツは、それに伴って並べ替えられ、これらの並べ替えられたレコードの集計が XamDataGrid コントロールの UI に表示されます。並べ替えは、ローカルおよびリモートのデータ ソースに実装できます。詳細については、以下のトピックを参照してください。

次の手順では、並べ替えを実装する方法を紹介します。

Infragistics.Core.DataVisualization~Infragistics.Core.Controls.DataSource.ListSortDirection

  1. XamDataGrid コントロールをデータにバインドします。

  2. ColumnSortDescription クラスの新しいインスタンスを作成し、そのパラメーターを並べ替える ColumnPropertyPath として、また使用する ListSortDirection として渡します(昇順または降順)。

  3. ColumnSortDescription オブジェクトを XamDataGrid コントロールの ColumnSortDescriptionCollection コレクションに追加します。

列の並べ替え説明

ColumnSortDescription オブジェクトは、XamDataGrid コントロールに対して、レコードの並べ替える方法を指定するために使用します。各 ColumnSortDescription は、単一の並べ替え動作を行います(「LastName」 Column を昇順で並べ替えるなど)。複数の ColumnSortDescription オブジェクトを XamDataGrid コントロールに同時に割り当て、より複雑な並べ替え動作ができます(詳細は、「複数列のレコードの並べ替えの例」を参照してください)。

XamDataGrid コントロールは、 ColumnSortDescription オブジェクトがある場合、それを ColumnSortDescriptionCollection コレクション内で反復することによって、並べ替える方法を決定します。 ColumnSortDescription オブジェクトがない場合、XamDataGrid コントロールは基本の ItemsSource の元のレコードの順序を維持します。

ColumnSortDescription オブジェクトは、各レコードが並べ替えられる XamDataGrid コントロールの ItemsSource にプロパティが割り当てられ(たとえば、 Column に割り当てられるパブリック プロパティ)、並べ替えの方向を示す ColumnSortDescription が列レコードに適用されます(昇順または降順)。

列レコードの並べ替え

次の例では、基本的な並べ替えの動作を実装する方法を紹介します。このシナリオでは、XamDataGrid コントロールが、3 つの  Column(FirstName、LastName、および Territory)を含むデータにバインドされ、LastName Column に昇順の並べ替え動作が適用されます。

このコード スニペットは、LastName Column PropertyPathColumnSortDescription クラスのインスタンスを作成し、ListSortDirection 列挙型を使用して昇順の並べ替えで渡します。SortDescriptions プロパティを使用して XamDataGrid コントロールの ColumnSortDescription オブジェクトを ColumnSortDescriptionCollection コレクションに追加します。

C# の場合:

var description = new ColumnSortDescription("LastName", ListSortDirection.Ascending);
DataGrid.SortDescriptions.Add(description);

次のスクリーンショットは、結果の並べ替え動作を示しています。LastName Column 内のレコードが昇順で並べ替えられ、他の関連するレコードもすべてそれに伴って並べ替えられていることを確認してください。

Sorting with DataGridView 1.png

複数列レコードの並べ替え

複数の ColumnSortDescription オブジェクトを同時に XamDataGrid コントロールに適用できます。このような状況では、XamDataGrid コントロールは、割り当てられた ColumnSortDescriptionCollection の同期操作を実行し、並べ替え条件を満足させます。この処理の場合、XamDataGrid コントロールが ColumnSortDescriptionCollection コレクション内を反復して、コレクション内に存在する順序に基づき、各 ColumnSortDescription の並べ替え動作の優先順を決定します(item[0] を最初に実行、item[1] を 2 番目に実行など)。この方法により、複数列の並べ替えが可能になります。データはグループで並べ替えられ、グループ自体も並べ替えられます。

次の例で、複数の並べ替え動作を説明します。

このシナリオでは、2 つの ColumnSortDescription オブジェクトが XamDataGrid コントロールに適用されます。最初の ColumnSortDescription は Territory Column をターゲットにして昇順で並べ替えます。2 つ目は LastName Column をターゲットにして、同様に昇順で並べ替えます。この組み合わせの ColumnSortDescription オブジェクトを使用することによって、擬似グループ化の動作が行われます。指定された領域に割り当てられた個人の名前が領域でグループ化され (昇順で並べ替えたリスト)、個人の各グループも昇順でリスト化されます。

C# の場合:

var sorting1 = new ColumnSortDescription("Territory", ListSortDirection.Ascending);
var sorting2 = new ColumnSortDescription("LastName", ListSortDirection.Ascending);

DataGrid.SortDescriptions.Add(sorting1);
DataGrid.SortDescriptions.Add(sorting2);

次のスクリーンショットは、Territory 列と LastName 列に適用した並べ替え動作の結果を示しています。

Territory Column が最初に昇順で並べ替えられ、次に LastName 列も昇順で並べ替えられていることに注意してください。XamDataGrid コントロールがこれらの並べ替え操作を同期するため、両方の条件が満たされます( ColumnSortDescription が実行された順序が、それらの優先順位を示しています)。このようにして、領域に割り当てられたすべてのデータ項目が領域によってグループ化され、項目の各グループも昇順で並べ替えらえます。

Sorting with DataGridView 2.png

関連トピック

以下の表は、このトピックに関連するトピックを示します。

トピック 目的

このトピックでは、XamDataGrid コントロールでサポートされる列タイプの情報を提供します。

このトピックでは、XamDataGrid コントロールで列を使用する際のコード例を提供します。

このトピックは、XamDataGrid コントロールのフィルタリング動作に関する情報とコード例を提供します。