我有一个这样的列表视图,在 FormLoad 事件中我应该为它做一些初始化,例如:(我需要这些)。
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 方法时,它什么也不做。为什么?!:(
编辑:这是我在最后一行调用 Sort() 的整个部分 目标是有两个列表视图和一个移动按钮,当单击移动按钮时,一个列表视图中的选定项目应该移动到另一个列表视图. (两个列表视图都不需要排序。只需对 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();
}