private Optional <RecordT> ConvertVisualIdxToPhysicalItem(int tbodyRowIdx) { var visualIdx = RelativeVisualIdxToAbsoluteVisualIdx(tbodyRowIdx); if (GetGroupForTrailerOrNull(visualIdx) != null) { return(Optional <RecordT> .CreateNone()); } var groupRecordsCnt = GetExtraGroupRowsCount(visualIdx); return(Optional <RecordT> .CreateSome(_model.Items[visualIdx - groupRecordsCnt])); }