ObjectGrid - .NET Visual Component

Latest News

2005-01-21: Many improvements with a new release.

2004-07-15: Binaries and source have been uploaded and releases created. You can find these in the Downloads section

Thank you for taking the time to have a look at object grid. ObjectGrid started life when I needed a way of representing objects in a tabular fasion, these objects needed complex rendereing and editing routines and also needed to be edited directly in the table (as a text string or a number is edited in the cell of a DataGrid). I originally explored ways of using DataGrid, TreeView and even PropertyGrid, all of which were more complex to inherit from than it was to create a control from scratch.

<img:Grids>

SourceForge Project Page

Design

I realised I would need a Grid that has publicly accessible columns and rows where I can access cells. I needed to be able to add/remove rows/columns easily, and also needed to move columns/rows/cells about the grid.

I decided to start with designing a data model, the model is quite basic in design. Basically we have a collection of Row objects, a collection of Column objects and within each of those row/column objects we have pointers to cell references. Abstracting the data away from the visual component itself allowed me to explor different interface designs tht use this data model.

Since the data component doesn't require anything from the visual component, I have chosen to keep this in its own assembly. This structure may change as the control evolves and gets its feet, though for the time being it works quite well this way.

For the component itself I chose to write a control that was pluggable, this allows for pluggable cell renderers and pluggable cell editors. With this model we can simply add a type (internally we have a map of types, renderers. When it comes time to render a cell we look for the type in the collection, if there is one then we use that instance to render the cell, otherwise we use a default tostring() renderer. Cell editors are to behave in the same way (though where we don't have a cell editor the cell becomes read-only).

Status

Currently I have designed and written most of the data component ant created a read-only windows forms control. A bit of work still needs to be done to perfect parts of the rendering though it is getting there.

To Do

There is still a lot of work that needs to be done for this component. Basically I am after your suggestions before I go too much further. If you would like to help out you are also quite welcome.

Download

I'm in the process of getting my code cleaned, Keep posted for binaries of each module.

Source and binaries can be downloaded from the Sourceforge file release system