.NET / C#将IList <string>绑定到DataGridView </string>

时间:2009-07-09 14:45:00

标签: c# .net data-binding datagridview ilist

我有一个IList<string>从函数返回(作为变量lst)然后我设置然后我

this.dataGridView1.DataSource = lst;

datagrid添加一个标记为Length的列,然后列出每个字符串的长度。 如何让它只列出字符串?

2 个答案:

答案 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();

        }