私はこのようなリストビューを持っており、 FormLoad イベントでは、次のような初期化を行う必要があります: ( I need these ) 。
listView.Scrollable = true;
listView.HideSelection = false;
listView.FullRowSelect = true;
listView.View = View.Details;
listView.HeaderStyle = ColumnHeaderStyle.None;
ColumnHeader header = new ColumnHeader();
header.Text = "MyHdr";
header.Name = "MyCol";
header.Width = listView.ClientSize.Width;
listView.Columns.Add(header);
それにアイテムを追加する方法は、次のように非常に簡単です。
listView.Items.Add("hello");
listView.Items.Add("How are you");
//... etc
しかし、それらを追加してアルファベット順にソートしたいのですが、新しいアイテムを追加してSortメソッドを呼び出すと、何もしません。どうして?!:(
EDIT:これは、最後の行でSort()を呼び出しているセクション全体です。目標は、2つのリストビューと、移動ボタンをクリックすると、1つのリストビューから選択されたアイテムが別のリストビューに移動する必要がある移動ボタンを持つことです. (両方のリストビューをソートする必要はありません。AvailLV リストビューだけをソートする必要があります)
private void MoveBtn_Click(object sender, EventArgs e)
{
ListView source=null;
ListView target= null;
if(AvailableLV.SelectedItems.Count>0)
{
source = AvailableLV;
target = SelectedLV;
}
if(SelectedLV.SelectedItems.Count>0)
{
source = SelectedLV;
target = AvailableLV;
}
if (source != null && target != null)
{
HaulItems(source, target);
}
}
private void HaulItems(ListView source , ListView target)
{
foreach(ListViewItem item in source.Items)
{
if(item.Selected)
{
source.Items.Remove(item);
target.Items.Add(item);
}
}
AvailableLV.Sort();
}