ソート後の順番でデータ行を取得する方法は 2 つあります。取得できるものが若干違うので、要件に合う方を選んで使ってください。

  1. RecordManager の Sorted コレクションを使用する。
  2. RecordManager の GetFilteredInDataRecords メソッドを呼び出した戻り値を使用する。

 

 

1. RecordManager の Sorted コレクションを使用する。

Sorted コレクションは、全データ行がソートされた状態で取得できます。フィルターで表示されていないデータ行や Record の Visibility を Collapsed などにして非表示になっているデータ行もすべてコレクションの中に含まれています。

DataRecordCollection sortedRecords = xamDataGrid1.RecordManager.Sorted;
foreach(DataRecord record in sortedRecords)
{
    // ... 処理
}

 

 

2. RecordManager の GetFilteredInDataRecords メソッドを呼び出した戻り値を使用する。

GetFilteredInDataRecords メソッドもソートされた状態でデータ行が取得できます。Sorted コレクションとの違いは、フィルターや Visibility の設定で非表示になっているデータ行は含まれない、という点です。

メソッド名に「Filter」が入っていますが、フィルターがかかっていない場合や有効になっていない場合でも使用できます。

List<DataRecord> sortedRecords = xamDataGrid1.RecordManager.GetFilteredInDataRecords().ToList();
foreach(DataRecord record in sortedRecords)
{
    // ... 処理
}

 

リファレンス

 

Tagged: