当使用 XtraGrid 时,可能需要编写代码来访问特定的列属性,或者把列对象传递为方法的参数,等等。 对于事件参数,或者在获取 点击信息 时也可能需要列对象。 本主题提供了涵盖这些要点的信息: 如何在代码中访问和识别列。
访问列
列对象是 Component 类的子类。 因此通过其 Name 属性来直接访问列是最轻松的。 但是,此功能仅适用于在设计时刻创建的列。 通过在下面的代码行中修改列的标题,展示了这种方法。
C# | 复制代码 |
---|---|
colCategoryID.Caption = "ID";
|
Visual Basic | 复制代码 |
---|---|
colCategoryID.Caption = "ID"
|
也可以通过视图的列集合来访问列对象 (对于网格视图和卡片视图,使用 ColumnView.Columns 属性; 对于布局视图,使用 LayoutView.Columns 属性; 对于带区视图,请参阅 BandedGridView.Columns 属性; 也可以通过 GridBand.Columns 集合来访问显示在特定带区内的列)。 列集合提供了使用索引号来访问列的方式。 索引器可以接受两种参数: 列的绑定字段名称,或者列在集合内的索引。 在第一种情况中,参数值与列的 GridColumn.FieldName 属性进行比对。
下列代码行展示了如何把焦点移入已绑定到“UnitPrice”字段的列。
C# | 复制代码 |
---|---|
gridView1.FocusedColumn = gridView1.Columns["UnitPrice"];
|
Visual Basic | 复制代码 |
---|---|
GridView1.FocusedColumn = GridView1.Columns("UnitPrice")
|
列集合提供了附加的方法来访问列。 GridColumnCollection.ColumnByName 方法使用指定的名称来获取列。 当列的名称被存储在变量中时,可以使用此方法。 否则,可以通过列的名称直接访问列,正如上面所描述的那样。 也可以使用 GridColumnCollection.ColumnByFieldName 方法,通过其绑定字段名称来获取列。 这是使用索引符号的另一种选择。
识别列
本小节假设要获取一个作为属性值、方法的返回值或事件参数的列对象。 通常,需要识别所取得的列。 GridColumn (也包含继承的 BandedGridColumn) 类提供了许多可用于实现此目的的属性。 下表列出了最常用的属性。
属性 | 说明 |
---|---|
GridColumn.Name | 仅适用于在设计时刻创建的列。 该值是唯一的,因为在同一个窗体上的组件不能有相同的名称。 |
GridColumn.FieldName | 指定绑定的数据字段名称。 该值不需要唯一,因为视图允许创建绑定到相同数据字段的多个列。 另一方面,很少(就是有也极少)需要创建多个列来显示相同的字段值。 |
GridColumn.AbsoluteIndex | 指定列在所属集合中的位置。 对于由视图所拥有的列,该值是唯一的。 |
GridColumn.ColumnHandle | 指定绑定数据字段在相关联的数据源内的索引号。 与 GridColumn.FieldName 属性相似,该值不需要唯一,因为视图允许创建绑定到单个数据字段的多个列。 |