代码之家  ›  专栏  ›  技术社区  ›  serhio

DataGridView示例绑定问题

  •  1
  • serhio  · 技术社区  · 14 年前

    我需要以一种形式(名称值)添加一个变量对列表。我决定在DataGridView中设置它,并使用简单的绑定来管理它。( .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());
    }
    

    当我启动应用程序时,我看到2列、名称和值是自动生成的,并且网格是空的。

    但是当我点击添加参数按钮时,什么都没有发生…错误在哪里?

    1 回复  |  直到 14 年前
        1
  •  2
  •   bla    14 年前
    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);
            }
        }