我有IList<string>
一个函数返回(作为变量 lst),我设置然后我
this.dataGridView1.DataSource = lst;
数据网格添加一列标记为长度,然后列出每个字符串的长度。如何让它只列出字符串?
我有IList<string>
一个函数返回(作为变量 lst),我设置然后我
this.dataGridView1.DataSource = lst;
数据网格添加一列标记为长度,然后列出每个字符串的长度。如何让它只列出字符串?
您确实需要一个具有字符串属性的对象列表。使用 .NET 3.5,您可以作弊:
.DataSource = list.Select(x=>new {Value = x}).ToList();
否则创建一个虚拟类并手动复制数据...
这是因为 DataGridViews 显示对象的属性。在这种情况下,列表只有一个属性“长度”,因此它只能显示“长度”(无论数据类型如何)。您需要创建一个包装类来实现您想要的(具有“Text”属性的“MyString”类,然后在您的网格中显示一个列表)。
希望这可以帮助
添加代码示例
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();
}