I'm trying to display a class relationship in the DataGridView but I'm not getting it. I have 3 classes Produto
and Unidade
and ItemVenda
, the Unidade
class refers to the product unit if it is KG / LT / UN etc ... In DataGridView I want to display the Sales Item that is the Product and its Drive however, I can only display the Product and when I try to display the Drive does not work. When I display the query result on a foreach
the drive is displayed but I can not display it in the DataGridView.
How to do this?
I'm trying like this.
Classes
public class Unidade{
public Integer id {set;get;}
public String descricao {set;get;};
public Unidade(){}
}
public class Produto{
public Long id {set;get;};
public String descricao {set;get;};
public Unidade unidade {set;get;}
public Produto(){}
}
public class ItemVenda{
public Long id {set;get;}
public Produto produto {set;get;}
public ItemVenda(){}
}
Displaying in DataGridView
private void defineGrid(){
gridItensVenda.AutoGenerateColumns = false;
IList<ItemVenda> lista = new ItemVendaDAO().findItensByVenda(venda);
gridItensVenda.DataSource = lista;
//exibe o produto
DataGridViewColumn c1 = new DataGridViewTextBoxColumn();
c1.DataPropertyName = "produto";
c1.HeaderText = "Produto";
//exibe a unidade do produto
DataGridViewColumn c2 = new DataGridViewTextBoxColumn();
c2.DataPropertyName = "ItemVenda.produto.unidade";
c2.HeaderText = "Unidade";
//adiciona columns ao grid
gridItensVenda.Columns.Add(c1);
gridItensVenda.Columns.Add(c2);
}