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

Infragistics UltraGrid自动创建列异常及AutoGenerateColumns属性咨询

关于Infragistics UltraGrid列自动生成问题的解答

1. 手动定义列后仍自动生成列的解决方法

UltraGrid默认会自动生成数据源对应所有列,即便你在编辑器中手动定义了列。要阻止这种行为,需关闭自动生成逻辑:

  • 代码设置:绑定数据源前,将UltraGrid.DisplayLayout.AutoGenerateColumns设为AutoGenerateColumns.False,示例:
    ultraGrid1.DisplayLayout.AutoGenerateColumns = AutoGenerateColumns.False;
    ultraGrid1.DataSource = yourElementList;
    
  • 设计器配置:在VS属性窗口中,展开UltraGrid的DisplayLayout属性,找到AutoGenerateColumns并设置为False。

你遇到的问题大概率是未关闭该开关,导致数据源绑定后新增了所有属性对应的列。

2. UltraGrid的AutoGenerateColumns属性位置

UltraGrid的自动生成列属性嵌套在DisplayLayout下,即UltraGrid.DisplayLayout.AutoGenerateColumns,对应枚举值:

  • AutoGenerateColumns.True:默认,自动生成所有列
  • AutoGenerateColumns.False:仅保留手动定义列,不自动生成
  • AutoGenerateColumns.RespectDisplayLayoutSettings:根据布局设置决定是否生成(适用于复杂场景)

这是UltraGrid与XamDataGrid的设计差异,后者的AutoGenerateColumns是根级属性。

3. 数据架构编辑器的作用

当正确设置AutoGenerateColumns = False后,数据架构编辑器中手动定义的列会完全生效,不会被数据源覆盖。它的核心作用包括:

  • 自定义列的显示顺序、标题、格式与绑定字段
  • 配置列的编辑权限、样式
  • 定义分组、汇总等布局逻辑

仅当自动生成开关开启时,数据源才会覆盖或新增列,此时编辑器设置会被部分忽略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 13:50:00