List A = new List();
A.Add("Apple");
A.Add("Banana");
A.Add("Pineapple");
dataGridView.DataSource = a;
结果:是列表中每个项目的长度而不是项目本身的长度。 如何让datagridView显示字符串而不是长度。如何在datgridview上显示列表
List A = new List();
A.Add("Apple");
A.Add("Banana");
A.Add("Pineapple");
dataGridView.DataSource = a;
结果:是列表中每个项目的长度而不是项目本身的长度。 如何让datagridView显示字符串而不是长度。如何在datgridview上显示列表
创建一个类,水果
class Fruit
{
public string Name { get; set; }
}
,创造成果的一个泛型列表:
List<Fruit> fruits = new List<Fruit>();
fruits.Add(new Fruit() { Name = "Apple" });
dataGridView1.DataSource = fruits;
,你也可以做一些时髦的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)的匿名类
这是第二次。我确信我永远不会忘记这一点。谢谢你的简要解释。 – Ani 2010-09-16 18:57:25
那是因为DataGridView
查找包含对象的属性。对于字符串,只有一个属性 - 长度。所以,你需要一个这样的字符串包装
public class StringValue
{
public StringValue(string s)
{
Value = s;
}
public string Value { get { return _value; } set { _value = value; } }
string _value;
}
然后绑定List<StringValue> object
到您的网格。只是一个备用的答案
编辑:无意的完成副本的某人在另一个话题中的答案,似乎教我这个人只是从那里复制答案,几年后,我带回了它,无意和道歉
非常感谢。这是我正在寻找的。 – Ani 2010-09-16 18:56:28