エンドユーザーがフィールド ラベルをクリックする、またはフィールド ラベルをグループ化領域にドラッグすることなく、XAML またはプロシージャ コードを使用してフィールドを並べ替え/グループ化できます。フィールドを手動で操作またはグループ化するために、 FieldSortDescription オブジェクトをフィールドレイアウトの SortedFields コレクションに追加する必要があります。コレクションに追加する各 FieldSortDescription オブジェクトは、フィールド レイアウトに存在する一意のフィールドに対応する必要があります。ふたつ以上の FieldSortDescription オブジェクトが同じフィールドを参照する場合、または FieldSortDescription オブジェクトがフィールド レイアウトに存在しないフィールドを参照する場合、DataPresenter コントロールは例外をスローします。
前に述べたように、複数の FieldSortDescription オブジェクトを SortedFields コレクションに追加できます。複数の FieldSortDescription オブジェクトを SortedFields コレクションに追加することによって、ひとつのフィールドでプライマリソートを適用し、次にもうひとつのフィールドでセカンダリ ソートを適用することができます。xamDataGrid コントロールは、FieldSortDescription オブジェクトを SortedFields コレクションに追加する順序に基づいてレコードを並べ替えます。たとえば、"Field A" に対して FieldSortDescription オブジェクトを追加し、次に "Field B" に対して FieldSortDescription オブジェクトを追加する場合、xamDataGrid は "Field A" でプライマリ ソートを実行し、"Field B" でセカンダリ ソートを実行します。
Note
|
注: xamDataCards コントロールはグループ化レコードをサポートしません。
|
以下の例のコードは、プログラムを使用してフィールドを並べ替えるおよびグループ化する方法を示します。
<!--xamDataGrid のXAML-->
<igDP:XamDataGrid Name="xamDataGrid1" BindToSampleData="True">
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldLayout.SortedFields>
<igDP:FieldSortDescription
IsGroupBy="True"
Direction="Descending"
FieldName="department" />
<igDP:FieldSortDescription
Direction="Descending"
FieldName="salary" />
</igDP:FieldLayout.SortedFields>
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>
<!--xamDataCarousel の XAML-->
<igDP:XamDataCarousel Name="xamDataCarousel1" BindToSampleData="True">
<igDP:XamDataCarousel.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldLayout.SortedFields>
<igDP:FieldSortDescription
IsGroupBy="True"
Direction="Descending"
FieldName="department" />
<igDP:FieldSortDescription
Direction="Descending"
FieldName="salary" />
</igDP:FieldLayout.SortedFields>
</igDP:FieldLayout>
</igDP:XamDataCarousel.FieldLayouts>
</igDP:XamDataCarousel>
<!--xamDataPresenter の XAML-->
<igDP:XamDataPresenter Name="xamDataPresenter1" BindToSampleData="True">
<igDP:XamDataPresenter.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldLayout.SortedFields>
<igDP:FieldSortDescription
IsGroupBy="True"
Direction="Descending"
FieldName="department" />
<igDP:FieldSortDescription
Direction="Descending"
FieldName="salary" />
</igDP:FieldLayout.SortedFields>
</igDP:FieldLayout>
</igDP:XamDataPresenter.FieldLayouts>
</igDP:XamDataPresenter>
...
Imports Infragistics.Windows.DataPresenter
Dim deptSort As New FieldSortDescription()
deptSort.Direction = System.ComponentModel.ListSortDirection.Descending
deptSort.FieldName = "department"
deptSort.IsGroupBy = True
Dim salarySort As New FieldSortDescription()
salarySort.Direction = System.ComponentModel.ListSortDirection.Descending
salarySort.FieldName = "salary"
'xamDataGrid のコード
Me.xamDataGrid1.FieldLayouts(0).SortedFields.Clear()
Me.xamDataGrid1.FieldLayouts(0).SortedFields.Add(deptSort)
Me.xamDataGrid1.FieldLayouts(0).SortedFields.Add(salarySort)
'xamDataCarousel のコード
Me.xamDataCarousel1.FieldLayouts(0).SortedFields.Clear()
Me.xamDataCarousel1.FieldLayouts(0).SortedFields.Add(deptSort)
Me.xamDataCarousel1.FieldLayouts(0).SortedFields.Add(salarySort)
'xamDataPresenter のコード
Me.xamDataPresenter1.FieldLayouts(0).SortedFields.Clear()
Me.xamDataPresenter1.FieldLayouts(0).SortedFields.Add(deptSort)
Me.xamDataPresenter1.FieldLayouts(0).SortedFields.Add(salarySort)
...
using Infragistics.Windows.DataPresenter;
...
FieldSortDescription deptSort = new FieldSortDescription();
deptSort.Direction = System.ComponentModel.ListSortDirection.Descending;
deptSort.FieldName = "department";
deptSort.IsGroupBy = true;
FieldSortDescription salarySort = new FieldSortDescription();
salarySort.Direction = System.ComponentModel.ListSortDirection.Descending;
salarySort.FieldName = "salary";
//xamDataGrid のコード
this.xamDataGrid1.FieldLayouts[0].SortedFields.Clear();
this.xamDataGrid1.FieldLayouts[0].SortedFields.Add(deptSort);
this.xamDataGrid1.FieldLayouts[0].SortedFields.Add(salarySort);
//xamDataCarousel のコード
this.xamDataCarousel1.FieldLayouts[0].SortedFields.Clear();
this.xamDataCarousel1.FieldLayouts[0].SortedFields.Add(deptSort);
this.xamDataCarousel1.FieldLayouts[0].SortedFields.Add(salarySort);
//xamDataPresenter のコード
this.xamDataPresenter1.FieldLayouts[0].SortedFields.Clear();
this.xamDataPresenter1.FieldLayouts[0].SortedFields.Add(deptSort);
this.xamDataPresenter1.FieldLayouts[0].SortedFields.Add(salarySort);
...