下面的示例演示了如何把自定义对象的一个数组绑定到 XtraGrid 控件。

首先,声明一个呈现单条记录的类。 下面的代码声明了一个有 IDNameAge 公共属性的类。 这些属性将成为数据源字段。 注意, ID 属性被声明为只读。 结果是 —— 它相关的列也将是只读的。

C#CopyCode image复制代码
public class Record {
   int id, age;
   string name;
   public Record(int id, string name, int age) {
      this.id = id;
      this.name = name;
      this.age = age;
   }
   public int ID { get { return id; } }
   public string Name {
      get { return name; }
      set { name = value; }
   }
   public int Age {
      get { return age; }
      set { age = value; }
   }
}
Visual BasicCopyCode image复制代码
Public Class Record
   Dim _id, _age As Integer
   Dim _name As String
   Public Sub New(ByVal id As Integer, ByVal name As String, ByVal age As Integer)
      Me._id = id
      Me._name = name
      Me._age = age
   End Sub

   Public ReadOnly Property ID() As Integer
      Get
         Return _id
      End Get
   End Property

   Public Property Name() As String
      Get
         Return _name
      End Get
      Set(ByVal Value As String)
         _name = Value
      End Set
   End Property

   Public Property Age() As Integer
      Get
         Return _age
      End Get
      Set(ByVal Value As Integer)
         _age = Value
      End Set
   End Property
End Class

在声明记录类之后,就可以使用记录填充数据源对象了。 本示例将使用一个 ArrayList 作为控件的数据源。

下面的代码使用记录填充了一个 ArrayList, 并把它指派到网格控件的 GridControl.DataSource 属性。 缺省时,所有数据源字段的列都被自动创建。

C#CopyCode image复制代码
ArrayList listDataSource = new ArrayList();
listDataSource.Add(new Record(1, "Jane", 19));
listDataSource.Add(new Record(2, "Joe", 30));
listDataSource.Add(new Record(3, "Bill", 15));
listDataSource.Add(new Record(4, "Michael", 42));
gridControl1.DataSource = listDataSource;

Visual BasicCopyCode image复制代码
Dim ListDataSource As New ArrayList()
ListDataSource.Add(New Record(1, "Jane", 19))
ListDataSource.Add(New Record(2, "Joe", 30))
ListDataSource.Add(New Record(3, "Bill", 15))
ListDataSource.Add(New Record(4, "Michael", 42))
GridControl1.DataSource = ListDataSource

在上述代码被执行之后,网格控件的外观将与下面显示的类似。