ListView のカラムの移動について教えてください。

ListView で、カラムを摘んで別のカラム位置にD&Dして移動することができましたが、
これで ListView.ColumnReordered イベント が発生しますが、

そこで ColumnReorderedEventArgs.OldDisplayIndex プロパティ や 同NewDisplayIndex プロパティ
を知ってカラムの並び順を記憶する配列などを更新することができ、

それを使って、次回にその並び順に Columns (=ColumnHeaderCollection クラス ) の
メンバーItemを並べ替えることはできるのですが、

それだけですと、データ部の ListViewItem の各カラムはそれに伴って同様に移動しては
くれませんでした。

この場合、このデータ部分のカラムもいっしょに移動する(D&Dで移動するのと同じ効果)
方法はありますでしょうか? よろしくお願いします。