如何在datagridview上显示列表

时间:2010-09-16 18:35:30

标签: c# datagridview

List A = new List();
A.Add("Apple");
A.Add("Banana");
A.Add("Pineapple");

dataGridView.DataSource = a;

结果:是列表中每个项目的长度而不是项目本身。 五 6 9 如何使datagridView显示字符串而不是长度。

3 个答案:

答案 0 :(得分:2)

创建一个类,Fruit

class Fruit
{
    public string Name { get; set; }
}

并创建一个通用的水果列表:

List<Fruit> fruits = new List<Fruit>();
fruits.Add(new Fruit() { Name = "Apple" });

dataGridView1.DataSource = fruits;

答案 1 :(得分:2)

你也可以做一些时髦的LINQ

List<string> A = new List<string>(); A.Add("Apple"); A.Add("Banana"); A.Add("Pineapple");
dataGridView.DataSource = (from a in A select new {Value = a}).ToList();

修改

为了进一步解释,问题是datagridview绑定到对象的默认属性(所以字符串是长度)字符串中没有真实属性(例如值),您可以设置DataMember所以你必须创建一个类,或者在我的例子中给它一个只有一个属性(或许多属​​性并设置DataMember)的匿名类

答案 2 :(得分:0)

多数民众赞成因为DataGridView寻找包含对象的属性。对于字符串,只有一个属性 - 长度。所以,你需要一个像这样的字符串的包装器

public class StringValue 
{ 
  public StringValue(string s) 
  { 
      Value = s; 
  } 
  public string Value { get { return _value; } set { _value = value; } } 
  string _value; 
}

然后将List<StringValue> object绑定到您的网格。只是一个替代答案

编辑:某个人的无意完整副本在另一个主题中回答,似乎教我这个的人只是从那里复制了答案,几年后,我把它带回来,无心和道歉

相关问题