This example demonstrates how to create a custom grid column.
Create a GridColumn descendant class. If you add properties to a custom column and want to serialize them (using the SaveLayoutTo...
method), apply the XtraSerializableProperty
attribute.
public class MyGridColumn : GridColumn {
public MyGridColumn() { }
string customDataValue = string.Empty;
[XtraSerializableProperty()]
public string CustomData {
get { return customDataValue; }
set { customDataValue = value; }
}
protected override void Assign(GridColumn column) {
base.Assign(column);
if(column is MyGridColumn) {
this.CustomData = ((MyGridColumn)column).CustomData;
}
}
}
Create a descendant from the GridColumnCollection class and override the CreateColumn
method to instantiate a custom column:
public class MyGridColumnCollection : GridColumnCollection {
public MyGridColumnCollection(ColumnView view) : base(view) { }
protected override GridColumn CreateColumn() {
return new MyGridColumn();
}
}
Create a descendant from the GridView class and override the CreateColumnCollection
method to instantiate your column collection:
public class MyGridView : DevExpress.XtraGrid.Views.Grid.GridView {
public MyGridView() : this(null) {}
public MyGridView(DevExpress.XtraGrid.GridControl grid) : base(grid) {
// Your initialization code.
}
protected override string ViewName { get { return "MyGridView"; } }
protected override GridColumnCollection CreateColumnCollection() {
return new MyGridColumnCollection(this);
}
}
- Form1.cs (VB: Form1.vb)
- MyGridColumn.cs (VB: MyGridColumn.vb)
- MyGridControl.cs (VB: MyGridControl.vb)
- MyGridHandler.cs (VB: MyGridHandler.vb)
- MyGridRegistration.cs (VB: MyGridRegistration.vb)
- MyGridView.cs (VB: MyGridView.vb)
- MyGridViewInfo.cs (VB: MyGridViewInfo.vb)
(you will be redirected to DevExpress.com to submit your response)