ブログ
 

【C#】ListViewのソート機能について

       

今回はwindows formのlistviewのソート機能を実装する際、クリックした列とは別の列でソートしたいということがあったので技術メモとして残したいと思います。

実装内容

表示させる項目はID・氏名・誕生日とし、初期表示はIDの昇順で表示します。
氏名のヘッダーをクリックしたときに氏名の50音順でソートするようにします。

listviewに隠し項目を追加する

ふりがなカラムのwidthを0に設定し、表示上は見えないようにします。


listView1.Columns.Add(“ID”, 50, HorizontalAlignment.Center);
listView1.Columns.Add(“氏名”, 150, HorizontalAlignment.Center);
listView1.Columns.Add(“ふりがな”, 0, HorizontalAlignment.Center);
listView1.Columns.Add(“誕生日”, 200, HorizontalAlignment.Center);

クリックイベントに記述する


private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
{
     // クリックした列を取得
     listViewItemSorter.Column = e.Column;
     int sortColumn = 2; // ふりがなカラム
     if(e.Column == 1)
     {
          listView1.ListViewItemSorter = new ListViewItemComparer(sortColum);
          listView1.Sort();
     }
}
 
  • このエントリーをはてなブックマークに追加