- - PR -
リストビューのソートについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-23 11:29
環境:VS 2003 / C#
リストビューのソートに関する質問です。 リストビューに ┌────┬────┐ | 名前 | 住所 | └────┴────┘ の2つのカラムのみ表示しています。 上記カラムヘッダ押下時のソート条件を ・名前カラムのヘッダが押下された場合 … 名前ID ・住所 〃 … 住所ID ように、表示しているデータと異なるデータでソートしたいのですが、実装方法が浮かんできません… リストビューで非表示カラムにIDを持たせようと思ったのですが、 ・Columns.Wirth=0; としても、UI操作で表示可能になってしまいました。 上記のように、表示しているデータと異なるデータでソートする場合はどのようにすればいいのでしょうか? #ちなみに、元データはDataTableで保持しています。(名前、住所、名前ID、住所ID) カラムヘッダ押下イベントで、DataTableをソートし、再度リストビューを構築することで、 一応ソートはできそうですが、処理に時間がかかると思うので… | ||||||||
|
投稿日時: 2006-01-23 13:40
たとえば表示列が2つでサブアイテムが2つ以上の場合、表示列の分だけ表示されます。 表示列以降に該当するサブアイテムに値を保持すればよいと思います。
ListViewItemSorterプロパティを使用します。 IComparerを実装した独自のクラスを作り、Compareメソッドに独自の並べ替え実装をします。 | ||||||||
|
投稿日時: 2006-01-23 15:28
まどか様、回答ありがとうございます。
なるほど、 | ||||||||
|
投稿日時: 2006-01-23 15:29
途中で書き込んでしましました、すいません。。
まどか様、情報提供ありがとうございます。 教えていただいた方法での実装を検討してみます。 ありがとうございましたm(__)m |
1