我有一个IList<string>
从函数返回(作为变量lst)然后我设置然后我
this.dataGridView1.DataSource = lst;
datagrid添加一个标记为Length的列,然后列出每个字符串的长度。 如何让它只列出字符串?
答案 0 :(得分:13)
您确实需要一个拥有字符串属性的对象列表。使用.NET 3.5,你可以作弊:
.DataSource = list.Select(x=>new {Value = x}).ToList();
否则创建一个虚拟类并手动复制数据......
答案 1 :(得分:2)
这是因为DataGridViews显示了对象的属性。在这种情况下,List只有一个属性“Length”,因此它只能显示“Lenght”(无论DataType如何)。 您需要创建一个包装类来实现您想要的(具有“Text”属性的“MyString”类,然后在您的网格中显示一个List)。
希望这有帮助
添加代码示例
class MyString
{
private string _text;
public string Text
{ get
{
return _text;
}
set
{
_text = value;
}
}
}
'执行表格
private List<MyString> foo()
{
List<MyString> lst = new List<MyString>();
MyString one = new MyString();
MyString two = new MyString();
one.Text = "Hello";
two.Text = "Goodbye";
lst.Add(one);
lst.Add(two);
return lst;
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = foo();
}