public void Add(UxListElement listElement)
    {
        if (uxList.Contains(listElement))
        {
            return;
        }

        // if list is full...
        if (uxList.Count >= maxEntries)
        {
            if (purge)
            {
                var element = uxList[0];
                uxList.RemoveAt(0);
                Destroy(element.gameObject);
            }
            else
            {
                return;
            }
        }

        // add listElement
        uxList.Add(listElement);

        // update parent and adjust add button row
        listElement.transform.SetParent(uxListContentTransform, false);

        // notify listElement of list modification
        UxListModified();

        // register self w/ onDelete event of child
        listElement.onDeleteEvent.AddListener(() => { Remove(listElement); });
    }
 public void Remove(UxListElement listElement)
 {
     uxList.Remove(listElement);
     UxListModified();
 }