public void OnOptionsChanged(ListControlItemData data)
        {
            // update item display
            for (int d = 0; d < itemDataList.Count; d++)
            {
                var item = itemDataList[d];
                item.selected   = false;
                itemDataList[d] = item;
                _listControlDataSource.UpdateItem(item);
            }

            data.selected = true;
            _listControlDataSource.UpdateItem(data);

            // retrieve options data index in list
            int index = int.Parse(data.id);

            if (index >= materialsOverride.Mappings.Count)
            {
                return;
            }

            // trigger events
            if (index == -1)
            {
                materialsOverride.enabled = false;
            }
            else
            {
                materialsOverride.enabled   = true;
                materialsOverride.Selection = index;
            }
        }
        void FillMenu()
        {
            if (_listControlDataSource.GetItemCount() == 0)
            {
                ListControlItemData originalItem = new ListControlItemData
                {
                    id       = "-1",
                    title    = "Original",
                    enabled  = true,
                    selected = true
                };
                _listControlDataSource.AddItem(originalItem);
                itemDataList.Add(originalItem);

                // filling ListControl with Data if empty
                int index = 0;
                foreach (MaterialMappings m in materialsOverride.Mappings)
                {
                    ListControlItemData d = new ListControlItemData
                    {
                        id    = index.ToString(),
                        title = m.name,
                        //description = m.description,
                        //options = (ListControlItemData.Option)(1 << index),
                        enabled  = true,
                        selected = false
                    };
                    _listControlDataSource.AddItem(d);
                    itemDataList.Add(d);
                    index++;
                }

                //  align window with button
                Vector2 windowpos = _listControl.GetComponent <RectTransform>().offsetMin;
                windowpos.x = buttonBackground.GetComponent <RectTransform>().offsetMin.x;
                _listControl.GetComponent <RectTransform>().offsetMin = windowpos;
            }
        }