示例#1
0
        public void AddDataItem(DataItem dataItem)
        {
            if (DataItems == null)
            {
                DataItems = new List <DataItem>();
            }

            if (!DataItems.Contains(dataItem))
            {
                DataItems.Add(dataItem);
            }
        }
示例#2
0
        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);
                }
            }
        }
示例#3
0
        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);
                }
            }
        }