Ejemplo n.º 1
0
        private async Task ExpandItem(DisplayableItem <TItem> item)
        {
            if (ItemDetails != null)
            {
                item.Content = await ItemDetails.Invoke(item.Item);

                item.Expanded = true;
            }
        }
Ejemplo n.º 2
0
        public bool AddItem(TItem item, TItem afterItem)
        {
            var indexF = 0;

            if (afterItem != null)
            {
                indexF = Array.IndexOf(FixedData, afterItem);
                if (indexF == -1)
                {
                    return(false);
                }
            }

            var anchorItem = FixedData[indexF];

            var indexD = -1;

            for (int i = 0; i < Data.Count; i++)
            {
                if (ReferenceEquals(Data[i].Item, anchorItem))
                {
                    indexD = i;
                    break;
                }
            }

            if (indexD == -1)
            {
                return(false);
            }

            var displayableItem = new DisplayableItem <TItem>(item);

            if (afterItem != null)
            {
                FixedData = FixedData.Take(indexF + 1)
                            .Concat(new[] { item })
                            .Concat(FixedData.Skip(indexF + 1))
                            .ToArray();

                Data = Data.Take(indexD + 1)
                       .Concat(new[] { displayableItem })
                       .Concat(Data.Skip(indexD + 1))
                       .ToList();
            }
            else
            {
                FixedData = new[] { item }.Concat(FixedData).ToArray();

                Data = new[] { displayableItem }.Concat(Data).ToList();
            }

            StateHasChanged();

            return(true);
        }
Ejemplo n.º 3
0
 private static void ContractItem(DisplayableItem <TItem> item)
 {
     item.Expanded = false;
 }