private async Task ExpandItem(DisplayableItem <TItem> item) { if (ItemDetails != null) { item.Content = await ItemDetails.Invoke(item.Item); item.Expanded = true; } }
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); }
private static void ContractItem(DisplayableItem <TItem> item) { item.Expanded = false; }