private void DestroyRowAt(int position) { switch (_visRows.GetRowTypeAt(position)) { case DataOrGroup.Group: Logger.Debug(GetType(), "Removing group at {0}", position); break; case DataOrGroup.Data: var record = _visRows.GetDataAt(position); Logger.Debug(GetType(), "Removing data {0} at {1}", record, position); _model.Columns.ForEach(x => x.DeleteViewFor(record)); break; default: throw new Exception("unsupported DataOrGroup"); } _view.DeleteBodyRow(position); _visRows.RemoveAt(position); }