【问题标题】:Populating a datagridview with a list C#使用列表 C# 填充 datagridview
【发布时间】:2018-12-17 04:51:08
【问题描述】:

我正在尝试使用具有多个属性的对象列表填充表单上的 datagridview 以创建表。

  private void display()
  {
        DataGridViewName.AutoGenerateColumns = false;
        DataGridViewName.DataSource = Class.List;
        DataGridViewName.ClearSelection();
  }

当我将 AutoGenerateColumns 设置为 false 时,单元格中不会显示任何内容(我使用设计模式输入列标题),如果我将 AutoGenerateColumns 更改为 true,它会为每个参数添加一个列,并且列标题显示名称财产。任何解释为什么数据没有显示并将其设置为 false,如果没有,那么有没有办法将列标题名称从属性名称更改为自动生成列上的其他名称?

【问题讨论】:

  • 如果您在设计器中创建了列,每列DataPropertyName 是否与其中一个类属性名称匹配?
  • 就是这样!设计模式下的 datapropertyname 是空白的,一旦我将其更改为它修复的属性名称。谢谢!
  • @LP,我也建议你不要在设计器中设置这个属性,因为你在创建 "magic string"。假设几天后您将重命名您的属性并且您的DataGridView 去 Boom。最好在构造函数中通过代码设置:yourColumn1.DataPropertyName = nameof(YourClass.YourProperty);
  • @vasily.sib 好电话,这是有道理的。相应调整
  • @vasily.sib ...我必须从您的评论中询问... “我会建议您不要在设计器中设置此属性,因为您正在创建“魔术字符串”。” ...我不确定这个属性如何被称为“魔术字符串”。你能详细说明为什么这是一个“魔术字符串”吗?此外,您的下一条评论... “假设几天后您将重命名您的属性,并且您的 DataGridView 开始繁荣。” .... ???我只能建议您更仔细地“重命名您的属性”。

标签: c# list datagridview


【解决方案1】:

你需要使用AutoGenerateColumn = false

并为每一列设置DataPropertyName

然后您可以更改标题设置HeaderText 属性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多