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

Revit可编辑ComboBox自定义输入触发空引用错误问题排查

问题:Editable ComboBox自定义输入触发空引用错误(Revit环境)

我有一个预填充了典型房屋外墙饰面砌体覆盖率百分比的ComboBox,为支持非典型方案的自定义数值输入开启了IsEditable属性,但输入自定义数值后Revit会抛出错误:Object reference is not set to an instance of an object。期望标题栏的砌体代码能更新为用户输入的数值。


后台填充ComboBox的代码

List<string> listMasonry = new List<string> { "0", "25", "50", "75", "100" };

foreach (string masonry in listMasonry)
{
    cmbCodeMasonry.Items.Add(masonry);
}

cmbCodeMasonry.SelectedIndex = 0;

报错触发的后台代码

public string GetComboBoxCodeMasonrySelectedItem()
{
    return cmbCodeMasonry.SelectedItem.ToString();
}

XAML代码

<ComboBox x:Name="cmbCodeMasonry" Grid.Column="1" Width="90" Height="25" Grid.Row="4" IsEditable="True"/>

问题原因与解决方法
  • 原因:ComboBox开启IsEditable后,用户输入的自定义内容不在预填充的Items集合中,此时SelectedItem会变为null,直接调用SelectedItem.ToString()就会触发空引用异常。
  • 解决方法:改用Text属性获取用户输入的内容,修改后的方法如下:
public string GetComboBoxCodeMasonrySelectedItem()
{
    return cmbCodeMasonry.Text;
}
  • 额外建议:可以增加输入验证逻辑,比如判断Text是否为0-100之间的有效数字,避免非法输入影响后续Revit操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:14:57