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

如何手动选择UltraListView项:未找到指定ID时选中首项

解决UltraListView选中项时的无效项错误

这个问题我之前用Infragistics的UltraListView时也踩过坑!你遇到的错误本质很明确:当_selectedId不在列表中时,FirstOrDefault会返回null,而UltraListView的SelectedItems.Add()方法不允许添加不属于当前控件Items集合的对象(null显然不符合要求),所以直接抛出了那个提示。

要实现「找不到匹配项就选中第一项」的需求,只需要在添加选中项前做两步判断:先确认找到的目标项是否有效,无效就替换成列表第一项,同时还要处理列表为空的极端情况。

完整解决方案代码

// 1. 查找匹配_selectedId的目标项
var targetItem = lvwSomethings.Items.Cast<UltraListViewItem>()
    .FirstOrDefault(x => x.SubItems["Id"].Value.Equals(_selectedId));

// 2. 清空已有选中项(如果是单选模式,根据业务场景可省略)
lvwSomethings.SelectedItems.Clear();

// 3. 确定最终选中项:找到目标项就用它,否则取第一项;列表为空则返回null
var itemToSelect = targetItem ?? lvwSomethings.Items.Cast<UltraListViewItem>().FirstOrDefault();

// 4. 仅当存在有效项时添加选中,避免空引用错误
if (itemToSelect != null)
{
    lvwSomethings.SelectedItems.Add(itemToSelect);
}

关键细节说明

  • 空合并运算符??:简化了「目标项为null则取第一项」的判断逻辑,代码更简洁易读。
  • 空值校验:最后的if (itemToSelect != null)是为了处理列表完全为空的情况,避免再次触发类似错误。
  • 清空选中项:如果你的业务是单选模式,这一步很有必要,不然可能出现多选中的混乱状态;如果支持多选,可以直接去掉这行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:31:45