/// <summary>
        /// This method called for each data item during databinding operation
        /// You have to bind data item properties to ui elements in order to display them.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnItemDataBinding(object sender, VirtualizingTreeViewItemDataBindingArgs e)
        {
            GameObject dataItem = e.Item as GameObject;

            if (dataItem != null)
            {
                //We display dataItem.name using UI.Text
                Text text = e.ItemPresenter.GetComponentInChildren <Text>(true);
                text.text = dataItem.name;

                //Load icon from resources
                Image icon = e.ItemPresenter.GetComponentsInChildren <Image>()[4];
                icon.sprite = Resources.Load <Sprite>("cube");

                //And specify whether data item has children (to display expander arrow if needed)

                e.HasChildren = dataItem.transform.childCount > 0;
            }
        }