List A = new List();
A.Add("Apple");
A.Add("Banana");
A.Add("Pineapple");
dataGridView.DataSource = a;
结果:是列表中每个项目的长度而不是项目本身。 五 6 9 如何使datagridView显示字符串而不是长度。
答案 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
绑定到您的网格。只是一个替代答案
编辑:某个人的无意完整副本在另一个主题中回答,似乎教我这个的人只是从那里复制了答案,几年后,我把它带回来,无心和道歉