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
相关产品推荐
相关产品推荐

