/ / DataGridView problema de enlace de muestra - .net, winforms, enlace de datos, datagridview

Problema de enlace de muestra DataGridView - .net, winforms, data-binding, datagridview

Necesito agregar una lista de pares de variables en un formulario (Nombre-Valor). Decidí configurarlo en una vista de datos y usar el binging simple para administrarlo (.NET 2)

public class EventParameter
{
private string name;

public string Name
{
get { return name; }
set { name = value; }
}
private string value;

public string Value
{
get { return this.value; }
set { this.value = value; }
}
}

///////////////////// USER CONTROL INITIALIZATION
private List<EventParameter> eventGridParams;
public GridEventSender()
{
InitializeComponent();
eventGridParams = new List<EventParameter>();
this.dataGridView1.AutoGenerateColumns = true;
this.dataGridView1.DataSource = eventGridParams;
}

///////////////////// ADD PARAMETER BUTTON
private void btnAddParam_Click(object sender, EventArgs e)
{
eventGridParams.Add(new EventParameter());
}

Cuando ejecuto la aplicación, veo que 2 columnas, Nombre y Valor se generan automáticamente, y la cuadrícula está vacía.

Pero cuando hago clic en el botón Agregar parámetro, no ocurre nada ... ¿Dónde está el error?

Respuestas

2 para la respuesta № 1
public partial class frmGridView : Form
{
private List<EventParameter> eventGridParams;
private BindingSource bs;
public frmGridView()
{
InitializeComponent();
eventGridParams = new List<EventParameter>();
bs = new BindingSource();
bs.DataSource = eventGridParams;
//this.dataGridView1.AutoGenerateColumns = true;    //you don"t need this
this.dataGridView1.DataSource = bs;
}

private void button1_Click(object sender, EventArgs e)
{
//eventGridParams.Add(new EventParameter() { Name="a", Value = "a"});   //object initializer is only available for c# 3.0
EventParameter eventParam = new EventParameter();
eventParam.Name = "a";
eventParam.Value = "a";
eventGridParams.Add(eventParam);
bs.ResetBindings(false);
}
}