Renato follows an example of how to populate your DataGridView using inherited classes.
Note: I tried to put it in a simple way for your understanding.
// Construtor do formulario, onde se inicia o carregamento dos componentes e dados
public Form1()
{
InitializeComponent();
var materiais = GetList();
LoadData(materiais);
}
// obtem uma lista de materiais - nesse caso, apenas 1 material
private List<Material> GetList()
{
var material = new Material
{
Codigo = 1,
DescricaoUnidade = "Descricao da minha unidade",
Descricao = "Descricao",
MarcaMaterial = "Marca do meu material",
UnidadeMedida = "10",
ValorUnitario = 1,
TipoMaterial = new TipoMaterial
{
TipoCodigo = 123,
TipoDescricao = "Alimentação"
}
};
return new List<Material> { material };
}
// Preenche o DataGridView com os valores da lista
private void LoadData(List<Material> materiais )
{
dataGridView.ColumnCount = 8;
dataGridView.Columns[0].Name = "M Codigo";
dataGridView.Columns[1].Name = "M Descricao da Unidade";
dataGridView.Columns[2].Name = "M Descricao";
dataGridView.Columns[3].Name = "M Marca do Material";
dataGridView.Columns[4].Name = "M Unidade de Medida";
dataGridView.Columns[5].Name = "M Valor Unitario";
dataGridView.Columns[6].Name = "T Codigo";
dataGridView.Columns[7].Name = "T Descricao";
foreach (var material in materiais)
{
object[] row = {
material.Codigo,
material.DescricaoUnidade,
material.Descricao,
material.MarcaMaterial,
material.UnidadeMedida,
material.ValorUnitario,
material.TipoMaterial.TipoDescricao,
material.TipoMaterial.TipoCodigo,
};
dataGridView.Rows.Add(row);
}
}
Here is an example link to the application: link
Abs,