Элементы списка просмотра (и подпункты) - PullRequest
0 голосов
/ 07 сентября 2011

Надеюсь, вы, ребята, сможете мне еще раз помочь, прежде чем я сойду с ума.Я искал легкий и низкий, здесь и в Google.Проходил через MSDN туда-сюда, но безрезультатно ... Я просто не понимаю, что я делаю не так ...

У меня есть форма, где я добавил просмотр списка (без каких-либо измененийк настройкам по умолчанию, когда его перетаскивают в форму).

После дня, когда я дурачился, я просто попробовал простой пример, поскольку ничего, что я хотел сделать, не сработало бы.Пример должен послужить своего рода «если это не сработает, тогда пришло время обратиться за помощью!» ...

Это пример;

ListViewItem item = new ListViewItem();
item.Text = "FirstItem";
item.SubItems.Add("A subitem");
item.SubItems.Add("A second subitem");
item.SubItems.Add("A third subitem");
listView1.Items.Add(item);

Всечто этот пример дает мне, это «FirstItem», ничего больше ...

Моя собственная версия, которую я хотел попробовать, заключается в следующем:

У меня есть словарь с именем «members».он содержит две строки: «name» в качестве Key и «LastSeen» ad Value.

Я пытаюсь сделать следующее:

if (GroupMembers.Count > 0)
{
    listView1.Items.Clear();
    key2name getname = new key2name();
    ListViewItem lvi = new ListViewItem("Name");
    ListViewItem lvi2 = new ListViewItem("Last seen");
    listView1.Columns.Add("Name", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("LastSeen", -2, HorizontalAlignment.Left);
    foreach (KeyValuePair<string, string> member in GroupMembers)
    {
        lvi.SubItems.Add(member.Key);
        lvi2.SubItems.Add(member.Value);
    }
    listView1.Items.AddRange(new ListViewItem[] { lvi, lvi2 });
}

То, что я пытаюсь выполнить, это то, чтомой список просмотра покажет два столбца, с первым именем столбца с текстом «Имя», а второй «Последнее посещение».Под каждым из этих столбцов я хочу, чтобы содержимое моего словаря отображалось.

Может ли кто-нибудь помочь мне пролить свет на это, прежде чем я полностью сойду с ума по этому вопросу?Спасибо ...

Хотя ответы были правильными, я все еще не получил желаемый результат, и я не уверен, как это сделать ..

Теперь я вижустолбцы, но я получаю это:

|  Name    | LastSeen   |
|Last seen | 2011-09-06 |
|Name      | Full Name  |

То, что я хочу, это:

|  Name    | LastSeen   |
|FullName  | 2011-09-06 |
|FullName  | 2011-09-06 |
|FullName  | 2011-09-06 |

Словарь содержит 3 KeyValuePairs

Ответы [ 3 ]

1 голос
/ 07 сентября 2011

Пример правильный, вы должны перевести listView в режим подробностей и добавить столбцы.

Ваш код после этого неправильный, вы не должны создавать два элемента списка lvi и lv2, просто создайте только 1 внутриforeach, его текст - это текст первого столбца, добавьте в него подэлементы и добавьте элемент в представление списка внутри foreach.

Вы увидите столбцы только после установки ListView в режиме сведений..

1 голос
/ 07 сентября 2011

Убедитесь, что для вашего ListView установлено свойство View, установленное в Details для отображения столбцов.

Возможно, вы также захотите установить некоторые свойства вашего списка во время разработки, включая столбцы, если они не являются динамическими.

    if (GroupMembers.Count > 0)
    {
        listView1.Items.Clear();
        key2name getname = new key2name();

        //If your going to do this here, you will want to clear your Columns
        //listView1.Columns.Clear();
        //However, I would suggest you put this elsewhere, or better yet set at design time.

        listView1.Columns.Add("Name", -2, HorizontalAlignment.Left);
        listView1.Columns.Add("LastSeen", -2, HorizontalAlignment.Left);


        foreach (KeyValuePair<string, string> member in GroupMembers)
        {
            //This creates a new 'row' in your listview, and populates the first column
            // with the Key
            ListViewItem lvi = new ListViewItem(member.Key);

            //This populates the second column with the value
            lvi.SubItems.Add(member.Value);


            listView1.Items.Add(lvi)
        }
    }
0 голосов
/ 07 сентября 2011

Если все, что вы видите, это большие значки, вам нужно установить для свойства Просмотр в ListView значение Подробнее. В противном случае код выглядит более или менее правильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...