C#将项目添加到List <t>并显示

时间:2015-12-02 17:58:37

标签: c# list datagridview

我尝试将不同的项添加到List中,然后在Datagridview中显示..

我有这个,但每次我添加一个新项目,替换最后一项

 private void btnAgregar_Click(object sender, EventArgs e)
    {
        List<alumno> p2 = new List<alumno>();
        p2.Add(new alumno() { telefono=(int.Parse(txtId.Text)), nombre=(txtNombre.Text), apellido=(txtApellido.Text) });
        dataGridView1.DataSource = p2;
    }

2 个答案:

答案 0 :(得分:0)

您不会将商品保留在任何地方。您每次都只是创建一个新列表:

List<alumno> p2 = new List<alumno>();

如果你的类本身是持久的,你可以使它成为类级属性:

private List<alumno> p2 = new List<alumno>();

private void btnAgregar_Click(object sender, EventArgs e)
{
    p2.Add(new alumno() { telefono=(int.Parse(txtId.Text)), nombre=(txtNombre.Text), apellido=(txtApellido.Text) });
    dataGridView1.DataSource = p2;
}

请注意,在Web应用程序中,这将是非常不同的,因为在Web应用程序中,类实例本身并不存在。在这种情况下,您希望将值保留在其他位置,并且您有许多选项。页面状态,会话状态,应用程序状态,数据库等

答案 1 :(得分:0)

您应该将Click的创建移出clickEvent。因为每次单击该按钮都会生成一个新列表,并且您之前的列表将丢失。您应首先声明List(例如在表单启动时),然后使用ClickEvent将您的项目添加到列表中

`列表p2 =新列表();

private void btnAgregar_Click(object sender,EventArgs e)     {         p2.Add(new alumno(){telefono =(int.Parse(txtId.Text)),nombre =(txtNombre.Text),apellido =(txtApellido.Text)});         dataGridView1.DataSource = p2;     }`