Hoi,
Ik heb een listview met checkboxes, de listview is op details ingesteld.
Wanneer ik een item toevoeg aan de listview dan wordt het ItemChecked event aangeroepen (ook al doe ik niets met aan de checkstate veranderen. Voor 20 items zou me dit weinig uitmaken, echter is het de bedoeling dat deze listview 1000++ items gaat krijgen en dit event vertraagt de boel behoorlijk.
Hierbij de code die ik geschreven heb:
Dit gebeurt alleen de eerste keer dat de items toegevoegd worden. Erna gebeurd het niet meer
Ik heb een listview met checkboxes, de listview is op details ingesteld.
Wanneer ik een item toevoeg aan de listview dan wordt het ItemChecked event aangeroepen (ook al doe ik niets met aan de checkstate veranderen. Voor 20 items zou me dit weinig uitmaken, echter is het de bedoeling dat deze listview 1000++ items gaat krijgen en dit event vertraagt de boel behoorlijk.
Hierbij de code die ik geschreven heb:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| private void UpdateOverview(string filter) { this.listView1.ItemChecked -= this.listView1_ItemChecked; listView1.ListViewItemSorter = null; List<devices> devices= _serverMonitor.GetDevices(filter); List<int> devices= new List<int>(); for(int i = 0 ; i < listView1.CheckedItems.Count;i++) { selectedDBs.Add(Convert.ToInt32(listView1.CheckedItems[i].SubItems[1].Text)); //subitem = DBID } listView1.Items.Clear(); for (int i = 0; i < devices.Count; i++) { ListViewItem recData = new ListViewItem(); recData.Checked = selectedDBs.Contains(devices[i].DBID); // als het ding van te voren al gechecked was wederom checken //..subitems toevoegen.. listView1.Items.Add(recData); } this.listView1.ItemChecked += this.listView1_ItemChecked; listView1.ListViewItemSorter = lvwColumnSorter; } |
Dit gebeurt alleen de eerste keer dat de items toegevoegd worden. Erna gebeurd het niet meer
Mess with the best, die like the rest