グループ化した列の並び順を制御したい場合は、FieldSettingsのGroupByComparerにIComparerインターフェースを実装したクラスのインスタンスを指定してください。
下のコードでは、12行目で指定しています。

<!-- MainWindow.xaml -->
<Window.Resources>
    <local:SortComparerForPrefecture x:Key="sortComparerForPrefecture"/>
</Window.Resources>
...
<igDP:XamDataGrid DataSource="{Binding Prefectures}">
    <igDP:XamDataGrid.FieldLayouts>
        <igDP:FieldLayout>
            <igDP:FieldLayout.Fields>
                <igDP:Field Name="PrefectureName" Label="都道府県">
                    <igDP:Field.Settings>
                        <igDP:FieldSettings GroupByComparer="{StaticResource sortComparerForPrefecture}" />
                    </igDP:Field.Settings>
                </igDP:Field>
            </igDP:FieldLayout.Fields>
            <igDP:FieldLayout.SortedFields>
                <igDP:FieldSortDescription FieldName="PrefectureName" IsGroupBy="True"/>
            </igDP:FieldLayout.SortedFields>
        </igDP:FieldLayout>
    </igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>

 

そしてこちらがIComparerを実装したクラスSortComparerForPrefecture本体です。

// SortComparerForPrefecture.cs
public class SortComparerForPrefecture : IComparer
{
    public int Compare(object x, object y)
    {
        // 渡されてきた引数をGroupByRecordとして取得する。
        GroupByRecord recordX = x as GroupByRecord;
        GroupByRecord recordY = y as GroupByRecord;

        // DataContextを取得
        MainWindowViewModel vm = recordX.FieldLayout.DataContext as MainWindowViewModel;

        // 該当するデータをそれぞれ取得する。
        Prefecture prefecture1 = vm.Prefectures.FirstOrDefault(pref => pref.PrefectureName == recordX.Value.ToString());
        Prefecture prefecture2 = vm.Prefectures.FirstOrDefault(pref => pref.PrefectureName == recordY.Value.ToString());

        // 戻り値を返す
        if (prefecture1 == null) return 0;
        else if (prefecture2 == null) return 1;
        // 都道府県コード順で並べ替える
        return prefecture1.PrefectureCode.CompareTo(prefecture2.PrefectureCode);
    }
}

 

実行結果

都道府県でグループ化されています。並び順は都道府県の漢字コード順ではなく、北から順(※正確には都道府県コード順)になっています。

 

リファレンス

「グループ化の概要 (xamDataGrid)」
https://jp.infragistics.com/help/wpf/xamdatagrid-grouping-overview

「GroupByComparer プロパティ」
https://jp.infragistics.com/help/wpf/infragisticswpf.datapresenter~infragistics.windows.datapresenter.fieldsettings~groupbycomparer

「GroupByRecord クラス メンバ」
https://jp.infragistics.com/help/wpf/infragisticswpf.datapresenter~infragistics.windows.datapresenter.groupbyrecord_members

 

Tagged:

製品について

Ultimate UI for WPF