private void longPressBegan(CGPoint point) { if (dataSource.IsEditing || isActive) { return; } var itemAtPoint = dataSource.CalendarItemAtPoint(point); if (!itemAtPoint.HasValue) { return; } calendarItem = itemAtPoint.Value; if (!calendarItem.IsEditable()) { return; } itemIndexPath = CollectionView.IndexPathForItemAtPoint(point); dataSource.StartEditing(itemIndexPath); becomeActive(); var startPoint = Layout.PointAtDate(calendarItem.StartTime.ToLocalTime()); firstPoint = point; LastPoint = point; previousPoint = point; verticalOffset = firstPoint.Y - startPoint.Y; impactFeedback.ImpactOccurred(); selectionFeedback.Prepare(); }