如何为绑定到 List<T> 的 dataGridView 设置 columnNames?

Posted

技术标签:

【中文标题】如何为绑定到 List<T> 的 dataGridView 设置 columnNames?【英文标题】:How do I set columnNames for a dataGridView bound to a List<T>? 【发布时间】: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? 【参考方案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;
  

【讨论】:

以上是关于如何为绑定到 List<T> 的 dataGridView 设置 columnNames?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 List<T> 应用异步和等待?

winForms + DataGridView 绑定到 List<T>

在 WinForm 中将 List<T> 绑定到 DataGridView

将 DataGridView 绑定到 List<T> 不显示数据

数据绑定到每个 KeyValuePair<string, List<T>> 中的最后一个条目

我把数据保存到List<T>中 在页面上怎么把list中的数据绑定到gridview中