【问题标题】:C# WinFormApp DataGridView cannot show object inside of ListC# WinFormApp DataGridView 不能在 List 内显示对象
【发布时间】:2018-02-28 00:00:58
【问题描述】:

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

我有 C# win forms 应用程序,我想在 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 中获取名称并显示在行中,这是它在输出中显示的内容:

如您所见,它显示的不是饮料,而是另一件事。 我也尝试使用 foreach 和 rows 遍历我的列表到 datagrid 但它抛出了一些错误。

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    在类别类别添加此代码:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-19
        • 2017-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多