Заполнение нескольких столбцов listview
относительно миграции Listbox в ListView.
Здравствуйте.
у меня есть список, я добавляю такие записи:
1;контент
где 1 всегда является int, а содержимое всегда является строкой. Я могу получить доступ к каждому отдельно.
Теперь я хочу результат, чтобы быть отсортированы descendingly, т. е.:
1;content
4;content2
2;content3
=>
4;content2
2;content3
1;content
поскольку это не выглядит хорошо, я хочу использовать Listview вместо этого. Как это:
Frequency | Content
===============
4 | content2
2 | content3
1 | content
проблема в том, что табличное свойство, похоже, не существует, все записи помещаются как символы в listview в проводнике. Также у меня проблемы с "достижением" 2-го столбца(контента), т. е. я вижу только 4,2,1.
как мне подготовить и заполнить listview в C# .net 4 для этого?
4 ответов
чтобы установить ListView в режим подробностей:
listView1.View = View.Details;
затем, чтобы настроить два столбца:
listView1.Columns.Add("Frequency");
listView1.Columns.Add("Content");
затем, чтобы добавить свои элементы:
listView1.Items.Add(new ListViewItem(new string[]{"1", "content"}));
listView1.Items.Add(new ListViewItem(new string[]{"4", "content2"}));
listView1.Items.Add(new ListViewItem(new string[]{"2", "content3"}));
Я решил использовать перегрузку конструктора ListViewItem, который принимает строковый массив, представляющий значения столбцов. Но есть 22 перегрузки! Посмотрите через то и найти тот, который соответствует вашей ситуации лучше всего.
чтобы установить автоматическую сортировку предметов:
listView1.Sorting = SortOrder.Descending;
Я понимаю, что этому сообщению больше года, но я думал, что это может быть полезно, я написал статью несколько лет назад об использовании ListView в качестве Многоколоночного списка, который включает код для его заполнения. Статья доступна здесь (использование ListView в качестве Многоколоночного ListBox) написано с помощью VB.NET но код в значительной степени точно такой же для C#, я могу переписать его с помощью C# и добавлю ссылку для этого, но это будет в другой раз.
надеюсь, это поможет, если не стесняйтесь, дайте мне знать :)
чтобы добавить заголовки представления списка и добавить элементы в представление списка, попробуйте этот код:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Lstv1.Columns.Add("Paramname", CInt(Lstv1.Width / 2))
Lstv1.Columns.Add("Paramorder", CInt(Lstv1.Width / 2))
End Sub
Private Sub appendlistview(ByVal Paramname As String, ByVal Paramorder As String)
Dim newitem As New ListViewItem(Paramname)
newitem.SubItems.Add(Paramorder)
Lstv1.Items.Add(newitem)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdd.Click
Call appendlistview(TextBox1.Text, TextBox2.Text)
End Sub