Выберите определенный столбец ListView и распечатайте его в новом окне сообщений в C # .net - PullRequest
2 голосов
/ 22 января 2011

Я только начал использовать ListView в C # .net.

Я узнал, как добавлять элементы и подпункты. Просматривая список, я хотел получить все данные из одного столбца с несколькими строками.

Я хочу знать, как это сделать.

Я нашел этот код для вывода списка выбранных данных из строки:

ListView.SelectedIndexCollection sel = listView1.SelectedIndices;

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

Это было полезно, но я хочу перечислить все элементы в строке, может быть, я хочу добавить все элементы столбца в массиве?

Ответы [ 3 ]

0 голосов
/ 22 января 2011

вы можете сделать это foreach(ListViewItem item in listView1.Items) { foreach(var subtem in item.SubItems) { // Do what ever you want to do with the items. } }

0 голосов
/ 22 января 2011
    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;
    }

Я бы рекомендовал некоторые меры предосторожности против этого.ListView действительно предназначен для отображения информации, это не большой класс коллекции.Извлечение данных из него происходит медленно и неуклюже, он может хранить только строки.Сохраняйте данные в вашей программе в первоначальном виде, возможно, List<Foo>.Теперь это просто и быстро.

0 голосов
/ 22 января 2011
foreach (ListViewItem item in listView1.Items) {
    // Do something with item
}
...