有一个自定义集合对象,继承自Collection<T>,把这个集合对象绑定到一个DatagridView后,可以显示,
但如果对集合增删操作后,datagridview没有显示更新,这是为什么啊?

解决方案 »

  1.   

    你调用datagridview.Update()方法看看呢?
      

  2.   

    还有一种可能,你改动的那个集合与你绑定的集合指向不一致了,比如你在什么地方又new了一个新的集合,对那个新的集合变量操作,不会影响到你的datagridview。所以你尝试下datagridview.DataSource的重新赋值看看,如果成功,说明就是那个原因了。
      

  3.   

     
            private ScheduleCollection<ScheduleConsumer> consumers;        private void BindingModelSource()
            {
                for (int i = 1; i < 5; i++)
                {
                    ScheduleConsumer sc = new ScheduleConsumer(i, "cousmer" + i.ToString());
                    sc.Level = i/3;
                    sc.Sequence = 10 * i;
                    consumers.Add(sc);
                }
                this.dataGridView1.AutoGenerateColumns = false;
                this.dataGridView1.DataSource = consumers ;
           
            }        private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 1; i < 4; i++)
                {
                    ScheduleConsumer sc = new ScheduleConsumer(i, "cousmer" + i.ToString());
                    sc.Level = i;
                    sc.Sequence = 10 * i;
                    consumers.Add(sc);
                }
               // this.dataGridView1.Update();
                //this.dataGridView1.DataSource = consumers;
            }没反应,是不是其他地方出问题了,贴出代码,帮忙看下,谢谢啊。
      

  4.   


    //先清空,再赋值就ok
    this.dataGridView.DataSource = null;
    this.dataGridView.DataSource = yourList;
      

  5.   


     private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 1; i < 4; i++)
                {
                    ScheduleConsumer sc = new ScheduleConsumer(i, "cousmer" + i.ToString());
                    sc.Level = i;
                    sc.Sequence = 10 * i;
                    consumers.Add(sc);
                }
               // this.dataGridView1.Update();
                //this.dataGridView1.DataSource = consumers;
                 this.dataGridView1.DataSource = null;
                 this.dataGridView1.DataSource = consumers;
            }
      

  6.   


    果然啊,终于更新了。但是有点想不明白,这个yourList引用始终没有变过的,为什么要清空,再赋值呢。
      

  7.   

    恩,谢谢了,估计是是我没把握好,consumers的new发生在一个函数里,但用了out关键字。
    错误可能就发生在这里,我换下。谢谢各位,散分了。