Vælg den specifikke kolonne i ListView og udskrive den i en ny meddelelsesboks i C # .net

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har lige begyndt at bruge ListView i C # .net.


Jeg fik at vide, hvordan man tilføjer varer og underartikler. Går igennem listevisningen ønskede jeg at hente alle data fra en hel kolonne med flere rækker.


Jeg vil gerne vide, hvordan man gør dette.


Jeg fandt denne kode til at liste en bestemt udvalgt data fra en række:


ListView.SelectedIndexCollection sel=listView1.SelectedIndices;


        if (sel.Count == 1)
        {
            ListViewItem selItem = listView1.Items[sel[0]];
            MessageBox.Show(selItem.SubItems[2].Text);
        }


Det var nyttigt, men jeg vil liste alle elementer i træk, måske vil jeg tilføje alle kolonneelementerne i array?

Bedste reference


    private string[] GetListViewItemColumns(ListViewItem item) {
        var columns = new string[item.SubItems.Count];
        for (int column = 0; column < columns.Length; column++) {
            columns[column] = item.SubItems[column].Text;
        }
        return columns;
    }


Jeg vil anbefale nogle forsigtighed mod at gøre dette. En ListView er virkelig meningen at vise information, det er ikke en fantastisk samlingsklasse. At få data ud af det er langsomt og krummet, det kan kun lagre strenge. Gem dataene i dit program i sin oprindelige form, måske en List<Foo>. Nu er det nemt og hurtigt.

Andre referencer 1


foreach (ListViewItem item in listView1.Items) {
    // Do something with item
}

Andre referencer 2


det kan du gøre ved
foreach(ListViewItem item in listView1.Items) { foreach(var subtem in item.SubItems) { // Do what ever you want to do with the items. } }