public void AddDataItem(DataItem dataItem) { if (DataItems == null) { DataItems = new List <DataItem>(); } if (!DataItems.Contains(dataItem)) { DataItems.Add(dataItem); } }
public void RemoveDataItem(DataItem dataItem) { if (DataItems == null) { return; } if (DataItems.Contains(dataItem)) { DataItems.Remove(dataItem); } if (dataItem.ChildCount > 0) { foreach (var childDataItem in dataItem.Children) { RemoveDataItem(childDataItem); } } }
void RebuildDataRenderers() { if (itemsUpdating) { return; } InternalContent.Content.Clear(); for (var index = 0; index < DataItems.Count; index++) { var closureIndex = index; var item = DataItems[index]; var renderer = CreateRenderer(UIStyle, item); renderer.MouseUp += (s, e) => InternalContent.DispatchEvent(e.Derive()); renderer.MouseDown += (s, e) => InternalContent.DispatchEvent(e.Derive()); renderer.MouseDragged += (s, e) => InternalContent.DispatchEvent(e.Derive()); renderer.MouseWheel += (s, e) => InternalContent.DispatchEvent(e.Derive()); renderer.SelectionChanged += (s, a) => { SelectedIndex = closureIndex; if (a.Adjusting == false) { // the adjusting event is fired naturally already. RaiseSelectionChanged(a); } }; InternalContent.Content.Add(renderer); } // todo: This is crude .. if (SelectedItem != null) { if (!DataItems.Contains(SelectedItem)) { SelectedItem = default(T); } } }