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

ObjectListView.repack.Core3 v.2.9.3添加列报错:类型转换异常求助

ObjectListView添加列时InvalidCastException的正确解决方式

出现System.InvalidCastException: Unable to cast object of type "System.Windows.Forms.ColumnHeader" to type "BrightIdeasSoftware.OLVColumn"错误的核心原因是:ObjectListView要求添加的列必须是其专属的OLVColumn类型,而非WinForms原生的ColumnHeader。以下是几种标准实现方式:

1. 代码层面创建并添加列

直接实例化OLVColumn,配置属性后加入ObjectListView的列集合:

using BrightIdeasSoftware;

// 创建对应数据源属性的OLVColumn
var userNameColumn = new OLVColumn("用户名", "UserName") { Width = 180 };
var emailColumn = new OLVColumn("邮箱", "Email") { Width = 220 };

// 添加到ObjectListView控件
myObjectListView.Columns.Add(userNameColumn);
myObjectListView.Columns.Add(emailColumn);

注:构造函数第二个参数为AspectName,需与数据源对象的属性名完全匹配,用于自动绑定数据。

2. 设计器可视化添加列

若使用Visual Studio设计器:

  • 选中窗体上的ObjectListView控件
  • 在属性面板找到Columns属性,点击右侧的编辑按钮
  • 在弹出的列编辑器中,点击「添加」按钮,此时创建的默认就是OLVColumn(确保设计器已正确加载ObjectListView组件)
  • 分别设置每列的Text(界面显示标题)、AspectName(绑定的数据源属性名)等关键属性

3. 关键注意事项

  • 禁止将原生ColumnHeader对象直接添加到ObjectListView的列集合,这会触发类型转换异常
  • 若从原生ListView迁移,需将所有原有ColumnHeader替换为OLVColumn
  • 确保项目已正确引用ObjectListView.repack.Core3 v2.9.3,且代码文件顶部添加了using BrightIdeasSoftware;命名空间引用

内容的提问来源于stack exchange,提问作者А.Терентьев

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:32:04