今回は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();
}
}
Webエンジニアとして勤務。
観劇と音楽が趣味です。
最近のコメント