複数の列を持つ ListView があります。
1 つは「名前」を含み、もう 1 つは「金額」を含みます。ユーザーがリストビューの [名前] 列をクリックしてアルファベット順に並べ替え、[金額] をクリックして数値 (高い/低い - 低い/高い) で並べ替えることができるようにしたいと考えています。
これを実装する最良の方法は何ですか?
部分的に実装されていますが、完全には実装されていません。Microsoftには、この問題に取り組む方法の説明がhttp://support.microsoft.com/kb/319401にあります。
ObjectListView(.NET WinForms ListViewのオープンソースラッパー)は、まさにこれを自動的に実行します。
これを解決するために、IComparerインターフェイスを実装する独自のListViewItemComparerを作成しました。次に、列が数値であるか文字列であるかに基づいて、適切な比較を行いました。