Winforms DataGridView中的数据源

Winforms DataGridView中的数据源,winforms,datagridview,Winforms,Datagridview,我需要这个代码 public class Test { public string name; public int age; public Test (string name, int age) { this.name = name; this.age = age; }

我需要这个代码

public class Test
         {
             public string name;
             public int age;

             public Test (string name, int age)
             {
                 this.name = name;
                 this.age = age;
             }
         }

         private void button1_Click (object sender, EventArgs e)
         {
             List <Test> listTest = new List <Test> ();
             listTest.Add (new Test ("Pavel", 30));
             listTest.Add (new Test ("Dima", 48));
             listTest.Add (new Test ("Vova", 48));
             dataGridView1.DataSource = listTest;
         }
公共类测试
{
公共字符串名称;
公共信息;
公共测试(字符串名,整数)
{
this.name=名称;
这个。年龄=年龄;
}
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{
List listTest=新列表();
增加(新试验(“Pavel”,30));
添加(新测试(“Dima”,48));
添加(新测试(“Vova”,48));
dataGridView1.DataSource=listTest;
}

DataGridView显示三行,但没有任何值表明我错误地尝试将名称和年龄设置为属性。它会解决你的问题

public class Test
    {
        public string Name
        {
            get;
            set;
        }
        public int Age
        {
            get;
            set;
        }

        public Test(string name, int age)
        {
            this.Name = name;
            this.Age = age;
        }
    }
希望您使用的是.NET3.5或更高版本,否则自动属性无法工作

这是截图


这在我的VS2010和.NET 4.0上不起作用。即使使用属性,将DataGridView的DataSource属性设置为列表实例(而不是BindingList)也不会显示任何内容。它适用于BindingList,但不适用于List。@Telaclavo您试过了吗?我修改了答案,我加了一张图片。我刚刚复制了带有自动属性的代码,VS 2010 C#Express edition运行良好。对不起,你说得对。我很快就发现了问题。我设置了两次数据源(由于TextChanged事件),第一次是在列表未填充的情况下,第二次是在列表已填充的情况下,由于对列表的引用是相同的,所以对数据源的第二次分配没有刷新效果。在DataSource=list分配之前设置DataSource=null解决了问题。谢谢。您是否在代码中的任何位置调用了
dataGridView1.DataBind()
?WinForm gridview(大多数WinForm控件)没有数据绑定事件。您不接受任何答案。请点击答案下方的勾号。