Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455

    [C#]Eliminare item da List<ListViewItem>

    Ciao a tutti, mi sono imbattuto piu' volte in questo problema, la prima volta sono riuscito a raggirarlo ma questa volta no.

    Ora vi spiego: Se il subitem[6] dell'elemento selezionato corrisponde a una delle seguenti stringhe:

    LangPackage.Texts.Skill[0]
    LangPackage.Texts.Skill[1]
    LangPackage.Texts.Skill[2]

    allora assegna alla variabile SelectedTeam la lista(sempre di tipo List<ListViewITem>) DevHighSkills oppure DevMediumSkills o DevLowSkills.

    infine una volta selezionata la lista cerca all'interno di essa un corrispondente dell'item selezionato da una ListView, se lo trova lo rimuove altrimenti non fa nulla.

    Non capisco proprio perchè non lo elimina...

    codice:
       private void FireDeveloper(ListView lst)
            {
    
                List<ListViewItem> SelectedTeam = new List<ListViewItem>();
    
                foreach (ListViewItem itm in lst.SelectedItems)
                {
    
                    GlobalVariables.Dpaycheck -= int.Parse(lst.SelectedItems[0].SubItems[1].Text);
    
                    if (lst.SelectedItems[0].SubItems[6].Text == LangPackage.Texts.Skills[0])
                    {
    
                        SelectedTeam = GlobalVariables.DevHighSkills;
    
                    }
                        
                    if (lst.SelectedItems[0].SubItems[6].Text == LangPackage.Texts.Skills[1])
                    {
    
                        SelectedTeam = GlobalVariables.DevMediumSkills;
    
                    }
    
                        
                    if (lst.SelectedItems[0].SubItems[6].Text == LangPackage.Texts.Skills[2])
                    {
    
                        SelectedTeam = GlobalVariables.DevLowSkills;
    
                    }
    
                }
    
                foreach (ListViewItem itm in SelectedTeam)
                {
    
                    if (itm.Text == lst.SelectedItems[0].Text)
                    {
        
                        itm.Remove();
    
                    }
    
                }
    
                lst.SelectedItems[0].Remove();
    
            }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477
    Ma siamo sicuri che la condizione che porta alla rimozione dell'elemento sia verificata?
    Hai fatto il debugging della tua applicazione?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Originariamente inviato da alka
    Ma siamo sicuri che la condizione che porta alla rimozione dell'elemento sia verificata?
    Hai fatto il debugging della tua applicazione?
    codice:
                foreach (ListViewItem itm in SelectedTeam)
                {
    
                    if (itm.Text == lst.SelectedItems[0].Text)
                    {
        
                        itm.Remove();
                        MessageBox.Show(itm.Text);
    
                    }
    
                }
    lo trova ma non lo rimuove..

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Ho provato anche in questo modo ma niente...

    codice:
                    foreach (ListViewItem item in SelectedTeam)
                    {
    
                        if (item == lst.SelectedItems[0])
                        {
    
                            SelectedTeam.Remove(item);
    
                        }
    
                    }
    nessuno sa proprio come aiutarmi?

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477
    Originariamente inviato da GhostFire
    Ho provato anche in questo modo ma niente...

    codice:
                    foreach (ListViewItem item in SelectedTeam)
                    {
    
                        if (item == lst.SelectedItems[0])
                        {
    
                            SelectedTeam.Remove(item);
    
                        }
    
                    }
    nessuno sa proprio come aiutarmi?
    Non capisco qual è il tuo obiettivo: rimuovere l'elemento dalla lista, oppure dal controllo ListView?

    Ovviamente se fai SelectedTeam.Remove(item); togli l'elemento dalla lista creata a mano e basta, mentre tu devi toglierlo dal controllo ListView.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Risolto creando questa funzione con l'aiuto di un mio amico:

    (Serve per eliminare la corrispondenza nella List<ListViewItem> dell'Item selezionato sulla ListView)

    codice:
        private void IterateSkillList(int itemToRemove, List<ListViewItem> list)
            {
                int index = 0;
    
                for (int i = 0; i < list.Count; i++)
                {
    
                    if (itemToRemove == i)
                    {
    
                        list.RemoveAt(index);
    
                        break;
    
                    }
    
                    index++;
    
                }
    
            }
    Cosa dovevo fare?

    Praticamente avevo una ListView nel form (usata per visualizzare i dati della List<ListViewItem> ,quando premevo un pulsante doveva eliminare l'item nella List<ListViewItem> che corrispondeva all'item selezionato nella ListView e poi dovevo anche eliminarlo dalla ListView.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.