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

MudBlazor MudChipSet:如何以编程方式选中MudChip?

问题原因分析

核心问题在于MudChipSet的选中逻辑依赖对象引用相等性,而非你用来匹配的Text属性。

你当前的操作存在关键矛盾:

  • 页面上渲染的MudChip是基于原始列表对象动态生成的实例
  • 你新创建了一批仅设置Text属性的MudChip对象,再筛选出Text匹配的赋值给selectedChip

这两类MudChip是完全独立的对象实例——哪怕Text属性完全一致,它们的内存引用也不相同。MudChipSet判断芯片是否被选中,是看绑定的selectedChip是否和页面上某个芯片的实例引用完全匹配,所以你的赋值操作无法触发选中效果。

正确解决思路
  • 不要重新创建MudChip对象,直接从渲染芯片时所用的原始数据源列表中筛选匹配项,将原始对象绑定到芯片的Value属性,同时把selectedChip绑定为该原始对象(若用多选则绑定对应集合)。
  • 示例逻辑(伪代码):
    // 假设原始数据源是List<YourModel> _items;
    <MudChipSet @bind-SelectedChip="selectedChip">
        @foreach(var item in _items)
        {
            <MudChip Text="@item.Name" Value="@item" />
        }
    </MudChipSet>
    
    // 选中时直接从原始列表匹配
    selectedChip = _items.FirstOrDefault(x => x.Name == "目标文本");
    

通过操作同一个对象引用,MudChipSet就能正确识别并选中对应芯片。

内容的提问来源于stack exchange,提问作者mr-woodapple

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 18:52:06