C#WinFormApp DataGridView无法在List中显示对象

时间:2018-02-28 00:00:58

标签: c# winforms datagridview

UPD:我发现这篇文章:http://www.developer-corner.com/blog/2007/07/19/datagridview-how-to-bind-nested-objects/,但它很老了,发布于2007年。

我有C#win forms app,我想在datagridView中显示项目列表: 这是列表:`

public static List<Item> ItemsList { get; set; } = new List<Item>()
        {
            new Item()
            {
                Id = 1,
               ItemName = "Ice Tea",
               ItemCategory   = new Category(){
                    Name = "Drinks"
                },
                Price = 4000.00,
        },...}`

正如您所看到的,我在Item中有另一个对象ItemCategory。 以下是连接到dataGrid的代码:

dataGridAllProducts.DataSource = Item.ItemsList;

问题是我无法从ItemsList获取Name并在行中显示,这是它在输出中显示的内容:is what it shows in output

正如你所看到的,而不是饮料,它显示了另一件事。 此外,我尝试使用foreach和行循环遍历我的列表到datagrid,但它抛出了一些错误。

2 个答案:

答案 0 :(得分:0)

数据网格视图的列绑定可能不正确。 请在设计视图中尝试以下操作: 1.右键单击数据网格视图,然后选择“编辑列” 2.选择数据不正确的列。 3.在“Data”下的“DataPropertyName”中,提到“Name”,即Item类的属性名称。

答案 1 :(得分:0)

在课程类别上添加以下代码:

public override string ToString(){
    return this.Name;
}

当你需要一个字符串调用该对象时,对象Category显示Name属性。