private void UpdateGACListView(GACAssembly[] gacAssemblies, bool isLastUpdate) { if (listView1.InvokeRequired) { listView1.Invoke(new LoadAssemblyUpdateEventHandler(UpdateGACListView), new object[] { gacAssemblies, isLastUpdate }); } else { if (listView1.Items[0].Text == "Please wait...") { listView1.Items.Clear(); } ListViewItem[] viewItems = new ListViewItem[gacAssemblies.Count()]; for (int i = 0; i < gacAssemblies.Count(); i++) { viewItems[i] = new ListViewItem(); viewItems[i].Text = gacAssemblies[i].Name; viewItems[i].SubItems.Add(gacAssemblies[i].Version.ToString()); viewItems[i].SubItems.Add(gacAssemblies[i].PublicKeyToken); viewItems[i].SubItems.Add(gacAssemblies[i].Path); viewItems[i].Font = new System.Drawing.Font("Arial", 10); viewItems[i].BackColor = _lastItemInvert == true ? Color.White : Color.LightGray; if (!CheckGACFilter(gacAssemblies[i].Name)) { continue; } _lastItemInvert = !_lastItemInvert; GACAssemblyItems.Add(viewItems[i]); } listView1.Items.AddRange(viewItems); } ReadyForAction = isLastUpdate; }
private void listView1_ColumnClick(object sender, ColumnClickEventArgs e) { if (!ReadyForAction) { return; } GACAssemblyItems.Sort(new ListViewGacItemComparer(e.Column)); listView1.Items.Clear(); listView1.Items.AddRange(GACAssemblyItems.ToArray()); }