【问题标题】:How do I set columnNames for a dataGridView bound to a List<T>?如何为绑定到 List<T> 的 dataGridView 设置 columnNames?
【发布时间】:2011-07-29 21:57:20
【问题描述】:

如下所示,我创建了一个装备列表。我希望列名更具描述性 - 是否有可以在装备属性中使用的属性?

DataGridView.Datasource = EquipList;

List<equip> EquipList = new List<equip>();

public class equip
{
 public int EquipID {get;set;}
 public string EquipName {get;set;}
}

好吧,也许我没有正确解释自己......我希望有一个可以应用的属性......

[Alis("name I would like to see in the gridview")]
public int EquipID {get;set;}

如果没有,我会坚持旧的疲惫的方式

那天早上晚些时候......

我明白了!

 using System.ComponentModel;

[DisplayName("the nice name")]
 public int EquipID {get;set;}

【问题讨论】:

  • dataGridView1.Columns[1].Name = "设备名称";这应该在应用绑定后起作用。 WinForms?

标签: c# winforms list datagridview datasource


【解决方案1】:

你可以试试这个

DataGridViewTextBoxColumn dt = new DataGridViewTextBoxColumn();
dt.DataPropertyName = "EquipName"; //Property to bind.
dt.HeaderText = "Name";
dataGridView1.Columns.Add(dt);

您可以使用 Designer 轻松实现这一目标。

【讨论】:

  • 这么长又费力
  • @Brad 无论如何,这是更好的答案。您可以添加 1 行简单的列:dataGridView1.Columns.Add("", "EquipID");dataGridView1.Columns.Add("", "EquipName");
【解决方案2】:

这行得通..

using System.ComponentModel;

List<equip> EquipList = new List<equip>();

DataGridView.Datasource = EquipList;

下面:类中的前两个属性将显示为 使用他们的新名称,第三个属性将不会按照 可浏览属性。

public class equip
  {
   [DisplayName("Equipment ID")]
   public int EquipID {get;set;}

   [DisplayName("Equipment Name")]
   public string EquipName {get;set;}

   [Browsable(false)]
   public int recordId {get; private set;}
  }

【讨论】:

    猜你喜欢
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 2013-10-24
    • 1970-01-01
    • 2014-05-12
    • 2017-05-18
    相关资源
    最近更新 更多