public override IEnumerable <SkylineDocNode> GetSelectedNodes(BoundDataGridView dataGridView) { var rowItemValues = RowItemValues.FromDataGridView(typeof(Protein), dataGridView); foreach (var rowItem in rowItemValues.GetSelectedRowItems(dataGridView)) { foreach (var protein in rowItemValues.GetRowValues(rowItem).Cast <Protein>()) { yield return(protein); } } foreach (var peptide in Peptides.GetSelectedNodes(dataGridView)) { yield return(((Entities.Peptide)peptide).Protein); } }