public override IEnumerable <Result> GetSelectedResults(BoundDataGridView dataGridView) { var rowItemValues = RowItemValues.FromDataGridView(typeof(PrecursorResult), dataGridView); foreach (var rowItem in rowItemValues.GetSelectedRowItems(dataGridView)) { foreach (var result in rowItemValues.GetRowValues(rowItem).Cast <Result>()) { yield return(result); } } foreach (var transitionResult in Transitions.GetSelectedResults(dataGridView)) { yield return(((TransitionResult)transitionResult).PrecursorResult); } }