protected override async Task OnParametersSetAsync() { if (_rootNodes == null) { throw new ArgumentException($"One of the following must be supplied {nameof(RootNode)} or {nameof(RootNodes)} (but NOT BOTH)"); } if (NodeTemplate == null) { throw new ArgumentException($"The parameter {nameof(NodeTemplate)} has not been set"); } if (GetChildNodesCallback == null) { throw new ArgumentException($"The parameter {nameof(GetChildNodesCallback)} has not been set"); } // ensure everything is expanded up to the selected node var pathToSelected = new List <TNode>(); BuildPathToSelected(this.RootNodes, pathToSelected); //if (pathToSelected.Count > 0) pathToSelected.RemoveAt(0); // don't expand the selected node foreach (var pathNode in pathToSelected) { if (this.IsNodeExpanded(pathNode) == false) { this._expandedNodes[pathNode] = true; await ExpandStateChanged.InvokeAsync(new ExpandedStateChangedArgs <TNode>(pathNode, true)); } } await base.OnParametersSetAsync(); }
internal async Task SetExpandedNodeAsync(TNode node, bool expanded) { this._expandedNodes[node] = expanded; await ExpandStateChanged.InvokeAsync(new ExpandedStateChangedArgs <TNode>(node, expanded)); await EnsureSelectedNodeIsVisible(); StateHasChanged(); }