DataViewのレコードの編集状態でフィルタ処理する方法

  DataView のレコードを編集状態に応じてフィルタ処理するには、「RowStateFilter」プロパティを使用します。RowStateFilter の指定により、編集状態に応じた特定のレコードのみ抽出することが可能になります。
【使い方】

 (1) DataView の「RowStateFilter」プロパティを使用して特定のレコードのみ抽出します。
  // dv は DataView

  // 新しく追加した行
  dv.RowStateFilter = DataViewRowState.Added;
  // 編集中の現在の行
  dv.RowStateFilter = DataViewRowState.CurrentRows;
  // 削除された行
  dv.RowStateFilter = DataViewRowState.Deleted;
  // 変更された行の現在のバージョン(変更後)
  dv.RowStateFilter = DataViewRowState.ModifiedCurrent;
  // 変更された行の元のバージョン(変更前)
  dv.RowStateFilter = DataViewRowState.ModifiedOriginal;
  // 指定なし
  dv.RowStateFilter = DataViewRowState.None;
  // 追加・変更・削除する前の元の行
  dv.RowStateFilter = DataViewRowState.OriginalRows;
  // 変更されていない行
  dv.RowStateFilter = DataViewRowState.Unchanged;
【注意】
 行状態フィルタ(RowStateFilter)を指定することで、 DataView のインデックスは、元のDataTable の Row コレクションのインデックスと一致しません。
 但し、DataView のインデックスで取得できる DataRowView の「Row」プロパティで取得できる DataRow は、元の DataTable の Row コレクションの該当行(DataRow)になります。
戻る