You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MudTreeView无法选中刚添加的项问题求助

解决MudTreeView添加项后无法立即选中的问题

问题原因

在添加新项后直接设置SelectedItem时,MudTreeView尚未完成新项的渲染,组件内部的项列表还未更新,导致设置的选中值无法匹配到刚添加的项,因此选中状态不生效。而后续手动选中时,组件已经完成了新项的渲染,所以可以正常选中。

解决方案

方案1:强制组件渲染后再设置选中值

通过InvokeAsync(StateHasChanged)触发组件更新,确保新项已被组件识别后,再设置选中值:

private async void Add()
{
    var value = $"P{InitialTreeItems.Count}";
    var treeItem = new TreeItemData<string> { Value = value, Icon = Icons.Material.Filled.Group};
    InitialTreeItems.Add(treeItem);
    // 触发组件渲染,让新项被组件识别
    await InvokeAsync(StateHasChanged);
    SelectedItem = value;
}

方案2:使用组件实例方法直接选中项

给MudTreeView添加@ref引用,调用组件自带的SelectItem方法选中新项,这种方式更可靠:

  1. 给MudTreeView添加引用:
<MudTreeView @ref="_treeView" @bind-SelectedValue="SelectedItem" Items="InitialTreeItems">
    <!-- 自定义项模板 -->
</MudTreeView>
  1. 修改代码逻辑:
private MudTreeView<string> _treeView;
private string SelectedItem;

private void Add()
{
    var value = $"P{InitialTreeItems.Count}";
    var treeItem = new TreeItemData<string> { Value = value, Icon = Icons.Material.Filled.Group};
    InitialTreeItems.Add(treeItem);
    // 直接调用组件方法选中新项
    _treeView.SelectItem(treeItem);
}

效果验证

修改后点击"Add"按钮,新添加的项会被立即选中,与"Select Trash"按钮的选中效果一致。

内容的提问来源于stack exchange,提问作者Juan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 21:42:13