Today, I want to refresh the treeview items in a DevExpress Blazor DxTreeView.
Imagine you edited one of the node's items and want to refresh the whole tree without loosing the selected node.
My DxTreeView
<DxTreeView @ref="@_treeView" AllowSelectNodes="true" SelectionChanged=@(async e => await SelectChildNodeAsync(e))
Data=@TreeViewItems
NameExpression="@(dataItem => ((Model.TreeViewItem)dataItem).Id.ToString())"
TextExpression="@(dataItem => ((Model.TreeViewItem)dataItem).Name)"
ChildrenExpression="@(dataItem => ((Model.TreeViewItem)dataItem).Items)">
</DxTreeView>
After editing finished, you could programmatically refresh the treeview's datasource, expand and select the current node with the help of the API:
TreeViewItems = await DataAccess.GetTreeViewData();
await InvokeAsync(StateHasChanged);
_treeView.ExpandToNode(nodeInfo => nodeInfo.Name == DetailItem.Id.ToString());
_treeView.SelectNode(nodeInfo => nodeInfo.Name == DetailItem.Id.ToString());
Top comments (0)