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控件)没有数据绑定事件。您不接受任何答案。请点击答案下方的勾号。