private void DropItemAt(int? droppedItemIndex, ItemsControl itemsControl) { itemsControl.RemoveItem(_draggedData); if (droppedItemIndex != null) { droppedItemIndex -= droppedItemIndex > _draggedItemIndex ? 1 : 0; itemsControl.InsertItemAt((int)droppedItemIndex, _draggedData); } else { itemsControl.AddItem(_draggedData); } }