Caal Saal VI
Caal Saal VI

Reputation: 302

Search item in list view c#

I try to add item in list view . But this code like not working at all. Where did i do wrong ?

btn.Click += (senders, eventArgs) =>
{
    foreach (ListViewItem lvis in lvSales.Items)
    {
        if (lvis.SubItems[0].Text == btn.Text)
        {
            MessageBox.Show("!!!!!!!");
        }
        else
        {
            lvis.Text = count.ToString();
            lvis.SubItems.Add(btn.Text);
            lvis.SubItems.Add(btn.Name);
            lvis.SubItems.Add(count.ToString());
            lvis.SubItems.Add(btn.Tag.ToString()); // Email  
            lvSales.Items.Add(lvis);
            count++;
        }
    }
};

I wan add item to list view. If the item already added it will add the quantity else it will add new . btw when I clicked the button nothing happen .

Upvotes: 0

Views: 2475

Answers (3)

fhnaseer
fhnaseer

Reputation: 7277

Try this. It is not completely correct but try and fix minor bugs.

var itemFound = false;
foreach (var listViewItem in lvSales.Items)
{
    if (listViewItem.SubItems[0].Text == btn.Text)
    {
        itemFound = true; break;
    }
}

if (!itemFound)
{
    var newlistViewItem = new ListViewItem();
    newlistViewItem.Text = count.ToString();
    newlistViewItem.SubItems.Add(btn.Text);
    newlistViewItem.SubItems.Add(btn.Name);
    newlistViewItem.SubItems.Add(count.ToString());
    newlistViewItem.SubItems.Add(btn.Tag.ToString()); // Email  
    lvSales.Items.Add(lvis);
}

Upvotes: 0

frno
frno

Reputation: 1084

you cannot add items to the collection you are iterating through with foreach (lvSales.Items). Consider changing foreach to some other loop like 'for(...'

Upvotes: 1

Louis van Tonder
Louis van Tonder

Reputation: 3700

btn.Click += (senders, eventArgs) =>
                {
                    foreach (ListViewItem lvis in lvSales.Items)
                    {
                        if (lvis.SubItems[0].Text == btn.Text)
                        {
                            //get current quantity of listitem, increment it,     
                            //add the new value to this listitem quantity value...
                            //keep track of current index, use that to set the new value...
                        }
                        else
                        {
                            //re instantiate listviewitem, set its values, and add it
                        }
                    }
                };

Upvotes: 0

Related Questions