DATAGRIDVIEW COM BINDINGSOURCE

PERCIFILHO 25/04/2016 09:14:31
#461350
Bom dia pessoal!!!
Estou preenchendo um DataGridView com BindingSource de uma List<T>:
BindingSource dados = new BindingSource();
dados.DataSource = new BindingList<Contato>(new Contato().GetAll()).Where(x=> .........);

Na tabela de contatos eu tenho os campos:
id / nome / senha / foto
onde no campo foto é gravado o caminho do arquivo da imagem, ok?
Na minha classe Contato eu tenho todos os objetos desses campos da tabela. Só que eu preciso mostrar no DataGridView a imagem da foto do contato.
Então eu criei um objeto na classe e deixei sem o atributo DataObjectField, assim:
private string _imagem_foto;
[Browsable(true)]
[DisplayName([Ô]ImagemFoto[Ô])]
//[DataObjectField(false, false, true)]
public string Imagem_Foto
{
get { return _imagem_foto; }
set { _imagem_foto = value; }
}

O campo imagemfoto até aparece no DataGridView, mas como faço para aparecer a imagem é que eu não sei.
Alguém que tenha entendido pode me ajudar?

PERCIFILHO 25/04/2016 09:34:38
#461351
Pessoal acho que encontrei a solução:

BindingSource dados = new BindingSource();
dados.DataSource = new BindingList<Contato>(new Contato().GetAll()).Where(x=> .........);
// cria uma ColumnImage
DataGridViewImageColumn imageColumn = new DataGridViewImageColumn();
imageColumn.HeaderText = [Ô][Ô];
imageColumn.Image = null;
imageColumn.Name = [Ô]imagem_foto[Ô];
imageColumn.Width = 40;
dgvContatos.Columns.Add(imageColumn);
foreach (DataGridViewRow row in dgvContatos.Rows)
{
DataGridViewImageCell cell = row.Cells[[Ô]imagem_foto[Ô]] as DataGridViewImageCell;
cell.Value = Image.FromFile(row.Cells[[Ô]foto[Ô]].Value.ToString());
}


Não sei se é a maneira mais correta, mas funcionou. Se alguém mais quiser dar uma ideia ou modificar alguma coisa, está aberto.
Tópico encerrado , respostas não são mais permitidas