Claro, eso es logico, pero yo no agrego item por item. Es decir, al enlazar el datasource, quedo desligado de la lectura item por item.
Como vos decis, en el evento CellFormatting cae el .Value (BLOB), pero ¿uno tiene que convertir el mismo .value a una imagen? (no le veo el sentido)
Y dicho evento, solo se llama al cargar los datos, verdad?
Ademas, dicha columna es del tipo DataGridViewImageColumn.
EDIT:
Aca lo tengo hecho.
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex == -1)
return;
if (((DataGridView)sender).Columns[e.ColumnIndex].Name.Equals("photo"))
{
e.FormattingApplied = true;
if (e.Value is DBNull)
e.Value = GestionSocios.Properties.Resources.generic_headshot;
else
e.Value = GetImageFromByteArray((Byte[])e.Value);
}
}
Ahora faltaria hacer un resize al e.Value, lo cual voy a indagar proximamente.
Igual no me convence a pleno, porque si bien se carga la imagen y todo, me da la sensacion que esto consume ram a lo pavote (cada vez que repinta y demas, tipo leak).
Para finalizar, me gustaria saber como hacer esto:
si tengo mi funcion GetImageFromByteArray, como podria hacer que pase "por referencia" un objeto Image, y que devuelva true o false segun si cargo o no la foto? (esto esta mas orientado a C o C++ y no es tan OOP, pero bueno. Sino indiquenme de que forma podria atrapar esos errores)
Saludos!