简体   繁体   English

c# 到 datagridview 的对象列表

[英]c# list of objects to datagridview

I Have the next object:我有下一个 object:

public partial class PEDIDOS公共部分 class PEDIDOS

{ {

public PEDIDOS()
{
    this.ARTICULOS = new HashSet<ARTICULOS>();
}
public int id { get; set; }
public string descripcion { get; set; }
public PROVEEDORES PROVEEDORES { get; set; }

} }

And the class PROVEEDORES: class PROVEEDORES:

public partial class PROVEEDORES
    {
    public PROVEEDORES()
    {
        this.PEDIDOS = new HashSet<PEDIDOS>();
    }

    public int id { get; set; }
    public string nombre { get; set; }
    public string codProveedor { get; set; }

}

And I Have a LIST of PEDIDOS.我有一份 PEDIDOS 清单。

I want to show this this list in a datagridview (windows forms):我想在 datagridview(windows 窗体)中显示这个列表:

dataGridView1.DataSource = lista;

Then I get this:然后我得到这个:

|id | descrpcion | PROVEEDORES                    |
--------------------------------------------------|
|1  | EXAMPLE    | system.data.dinamicproxyes.....|
|2  | example    | system.data.dinamicproxyes.....|
...

But I need that proveedores column, was the "nombre" field of PROVEEDORES's class:但我需要proveedores 列,是PROVEEDORES 的class 的“名词”字段:

|id | descrpcion | PROVEEDORES                    |
--------------------------------------------------|
|1  | EXAMPLE    | proveedor's name               |
|2  | example    | proveedor's name               |
    ...

You can create a lista this way:您可以通过以下方式创建列表:


var lista=  context.PEDIDOS.Select( i=>  new {
id=i.id,
description=i.description,
PROVEEDORES=i.ROVEEDORES.nombre
}).ToList();

....
dataGridView1.DataSource = lista;

One way to achieve what you describe is to override the PROVEEDORES ToString method.实现您所描述的一种方法是覆盖PROVEEDORES ToString方法。 Something like…就像是…

public override string ToString() {
  return nombre;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM