private void PrepareStartDrag(double yPos)
{
if (_dragging != CatrobatListViewDragStaus.NotDragging)
{
return;
}
int verticalOffset = (int)Math.Floor(_scrollViewer.VerticalOffset);
double tmpHeight = 0;
for (int i = 0; i < Items.Count; i++)
{
var tmpItem = ContainerFromIndex(i) as CatrobatListViewItem;
if (tmpItem == null || tmpItem.Visibility == Visibility.Collapsed)
{
continue;
}
tmpHeight += tmpItem.ActualHeight + _verticalItemMargin;
if (tmpHeight + _verticalItemMargin > verticalOffset + yPos)
{
StartDrag(i, yPos);
return;
}
}
}