private void lvProteins_SelectedIndexChanged(object sender, EventArgs e) { if (this.bUpdatingProtein) { return; } for (int i = 0; i < lvProteins.Items.Count; i++) { (lvProteins.Items[i].Tag as IIdentifiedProteinGroup).Selected = lvProteins.Items[i].Selected; } DoUpdateResult(); this.lvPeptides.BeginUpdate(); try { this.bUpdatingPeptide = true; this.lvPeptides.Items.Clear(); if (this.lvProteins.SelectedItems.Count == 0) { return; } var mpg = this.lvProteins.SelectedItems[0].Tag as IIdentifiedProteinGroup; List <IIdentifiedSpectrum> mphs = mpg[0].GetSpectra(); foreach (IIdentifiedSpectrum mph in mphs) { if (option.HasPeptideRatio(mph)) { ListViewItem item = this.lvPeptides.Items.Add(""); item.Tag = mph; UpdatePeptideHit(mph, item); } } } finally { this.bUpdatingPeptide = false; this.lvPeptides.EndUpdate(); } DoUpdateProtein(); lvPeptides.Items[0].Selected = true; }