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