How prevent duplicate items listView C#

后端 未结 5 659
终归单人心
终归单人心 2020-12-19 07:50

I am using Windows Forms. With this code I add items to listView from comboBox.

ListViewItem lvi = new ListViewItem();         


        
相关标签:
5条回答
  • 2020-12-19 07:57
    if (!listView1.Items.Any(i => i.text == lvi.text))
    {
        listView1.items.Add(lvi)
    }
    

    I'm just guessing on the text property, but I'm pretty sure that's there.

    Alternatively - just have a List<string> and use it as a data source for your list.

    0 讨论(0)
  • 2020-12-19 07:59

    This code worked for me:

    if(DialogResult.OK == fileDialogue.ShowDialog())
                {
                    foreach (var v in fileDialogue.FileNames)
                    {
                        if (listView.FindItemWithText(v) == null)
                        {
                            listView.Items.Add(v);
                        }
    
                        else
                        //Throw error message
    
    0 讨论(0)
  • 2020-12-19 08:11

    You should be using ContainsKey(string key) instead of Contains(ListViewItem item)

    var txt = comboBox1.Text;
    
    if (!listView1.Items.ContainsKey(txt))
    {
        lvi.Text = txt;
    
        // this is the key that ContainsKey uses. you might want to use the value 
        // of the ComboBox or something else, depending the combobox is freetext 
        // or regarding your scenario.
        lvi.Name = txt;
    
        lvi.SubItems.Add("");
        lvi.SubItems.Add("");
        lvi.SubItems.Add("");
        lvi.SubItems.Add("");
    
        listView1.Items.Add(lvi);
    }
    
    0 讨论(0)
  • 2020-12-19 08:14
    String csVal = Value;
    ListViewItem csItem = new ListViewItem(csVal);
    if (!listViewABC.Items.ContainsKey(csVal))
    {
        csItem.Name = csVal;
        listViewABC.Items.Add(csItem );
    }
    
    0 讨论(0)
  • 2020-12-19 08:17

    The ListView class provides a few way to check if an item exists:

    • Contains On Items collection, and
    • FindItemWithText methods

    It can be used like :

    // assuming you had a pre-existing item
    ListViewItem item = ListView1.FindItemWithText("item_key");
    if (item == null)
    {
        // item does not exist
    }
    
    
    // you can also use the overloaded method to match subitems
    ListViewItem item = ListView1.FindItemWithText("sub_item_text", true, 0);
    
    0 讨论(0)
提交回复
热议问题