Hi,
Ik wil in een listView een selectie sorteren. Deze code moet de basis worden voor het selecteren op basis van meerdere kolommen, maar uiteraard moet ik eerst een single kolom werkend zien te krijgen :
Selecteer ik twee aaneengesloten items die verkeerdom staan, worden deze netjes omgedraaid. Is het een grotere selectie die niet klopt dan gebeurt er wel iets, maar totaal niet wat ik verwacht.
Ik zal uiteraard iets over het hoofd zien
Ik wil in een listView een selectie sorteren. Deze code moet de basis worden voor het selecteren op basis van meerdere kolommen, maar uiteraard moet ik eerst een single kolom werkend zien te krijgen :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| private void btnSort_Click(object sender, EventArgs e) { if (listView1.SelectedItems.Count == 0) { return; } for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].Selected && listView1.Items[i+1].Selected) { if (string.Compare(listView1.Items[i].SubItems[0].Text, listView1.Items[i + 1].SubItems[0].Text) > 0) { ListViewItem lvItem = (ListViewItem)listView1.Items[i].Clone(); listView1.Items.Remove(listView1.Items[i]); listView1.Items.Insert(i+1, lvItem); } } } } |
Selecteer ik twee aaneengesloten items die verkeerdom staan, worden deze netjes omgedraaid. Is het een grotere selectie die niet klopt dan gebeurt er wel iets, maar totaal niet wat ik verwacht.
Ik zal uiteraard iets over het hoofd zien