簡體   English   中英

如何防止在列表視圖中添加行的多個實例?

[英]how do i prevent multiple instances of added rows in a listview?

列出itemsToMove = new List(); foreach(lvScanRepository.SelectedItems中的ListViewItem項目){itemsToMove.Add(item); }

foreach (ListViewItem item in itemsToMove)
{
    if (!lvBatch.Items.Contains(item))
    {
        lvScanRepository.Items.Remove(item);
        lvBatch.Items.Add(item);
    }
}

一個ListViewItem不能同時屬於多個ListView,所以這種情況:

if (!lvBatch.Items.Contains(item))

...將永遠是正確的。

您要使用什么條件來確定一個ListView中的項目是否與另一個ListView中的項目“相似”? 根據這一點,您有兩個選擇:

ListViewItem具有一個名為Name的屬性,該屬性可用於唯一標識ListView中的項目。 然后,您可以調用Items.ContainsKey(String)來查看是否存在具有該名稱的項目。

或者,您可以在lvBatch中搜索以找到與您要添加的文本相同的文本的項目:

if (!lvBatch.Items.Cast<ListViewItem>().Any(i => i.Text == item.Text))

(您需要進行強制轉換,因為ListViewItemCollection實際上並未實現IEnumerable<ListViewItem> 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM