Que tal Abel.
1.- Creas una clase del tipo deseado, por ejemplo:
Código:
public class MiClase
{
private System.Decimal clave;
private System.String descripcion;
public miClase()
{
}
public miClase(System.String pClave, System.String pDescripcion)
{
this.Clave = pClave;
this.Descripcion = pDescripcion;
}
public System.Decimal Clave
{
get { return this.clave; }
set { this.clave = value; }
}
public System.String Descripcion
{
get { return this.descripcion; }
set { this.descripcion = value; }
}
}
2.-Creas una lista ( o Array) de esa Clase, y le agregas los elementos deseados, por ejemplo:
Código:
List<MiClase> miLista = new new List<MiClase>();
MiClase miclase = new MiClase();
miclase.clave = "1"
miclase.descripcion = "uno"
miLista.add(miclase)
miclase = new MiClase("2", "dos");
miLista.add(miclase)
miclase = new MiClase("3", "tres");
miLista.add(miclase)
3.- Y por último llenas tu grid.
Código:
grdDatos.DataSource = miLista;
grdDatos.DataBind();
4.- Y para acceder a los datos en lugar de hacerlo al grid, lo haces al arreglo (miLista), por medio de la propiedad DataItemIndex del dagridview.

Se me olvido preguntar que versión de .Net estas usando, porque lo anterior es para 2.0.
Saludos!!