列出itemsToMove = new List(); foreach(lvScanRepository.SelectedItems中的ListViewItem项) { itemsToMove.Add(项目); }
foreach (ListViewItem item in itemsToMove)
{
if (!lvBatch.Items.Contains(item))
{
lvScanRepository.Items.Remove(item);
lvBatch.Items.Add(item);
}
}
答案 0 :(得分:1)
ListViewItem不能同时属于多个ListView,所以这个条件:
if (!lvBatch.Items.Contains(item))
......永远都是真的。
您希望使用什么标准来确定一个ListView中的项目是否与另一个项目中的项目“相似”?根据这一点,您有几个选择:
ListViewItem有一个名为Name的属性,可用于唯一标识ListView中的项目。然后,您可以拨打Items.ContainsKey(String)以查看是否存在具有该名称的项目。
或者,您可以在lvBatch中搜索,找到与您要添加的文本具有相同文本的项目:
if (!lvBatch.Items.Cast<ListViewItem>().Any(i => i.Text == item.Text))
(你需要强制转换,因为ListViewItemCollection实际上并没有实现IEnumerable<ListViewItem>
。)