protected void CreateEnoughItems(int targetCount)
    {
        while (m_ItemPrefabInstances.Count < targetCount)
        {
            GameObject neoObj = GameObject.Instantiate(m_ItemPrefab as UnityEngine.GameObject);
            ScrollviewContentItem <T> neoItem = neoObj.GetComponent <ScrollviewContentItem <T> >();

            neoItem.Init();
            neoItem.OnItemClicked += ItemClicked;

            if (neoItem is DraggableScrollviewContentItem <T> )
            {
                DraggableScrollviewContentItem <T> draggableItem = neoItem as DraggableScrollviewContentItem <T>;
                if (draggableItem != null)
                {
                    draggableItem.OnDragBegin += ItemDragBegin;
                    draggableItem.OnDragEnd   += ItemDragEnd;
                    draggableItem.OnDragging  += ItemDragging;
                }
            }

            neoItem.gameObject.SetActive(false);
            base.AddContentItem(neoItem);
            m_ItemPrefabInstances.Add(neoItem);
        }
    }
 protected void TriggerOnDragging(DraggableScrollviewContentItem <T> contentItem, PointerEventData eventData)
 {
     if (OnDragging != null)
     {
         OnDragging(contentItem, eventData);
     }
 }
 protected void ItemDragEnd(DraggableScrollviewContentItem <T> contentItem, PointerEventData eventData)
 {
     if (OnItemDragEnd != null)
     {
         OnItemDragEnd(contentItem, eventData);
     }
 }