当DataGridView的DataSource绑定的为List<MyClass>时,当List<MyClass>的内容发生改变时,为了能够及时刷新,我的处理方式是:
1、先设置DataGridView的DataSource属性为new List<MyClass>(),然后再把作过改动的List<MyClass>重新赋于DataGridView的DataSource。
2、用DataGridView1.DataSource=new BindingList<MyClass>(new List<MyClass>())。第一种方式并没有像网上很多人所说的能够解决问题,也会导致列结构的变化(列名变成了类的属性名)不知高手们能否指点一二,不胜感激listDataGridView

解决方案 »

  1.   

    需要刷新数据的地方
    DataGridView1.DataSource=你新的List<...>对象
      

  2.   

    DataGridView1.DataSource=你新的List<...>对象
    再做一次绑定 
      

  3.   

    你用的是onetime方式绑定,但是实际你需要的是oneway或twoway绑定,他们的区别参考http://www.cnblogs.com/yjmyzz/archive/2009/11/09/1599058.html(这个连接看似sl滴东西,看似很多人宣扬的高级新技术-MVVM,其实不是滴oneway,twoway绑定微软在net1年代就已经实现了,并且在winfrom里已经使用了10多年了他并不是新技术了,只是当年微软并没有像现在这样宣扬这项技术)解决方法:
    加入bindingsource,同时数据源应该选择具有INotifyPropertyChanged接口实现的数据源(如BindingList,ObservCollection)即可实现twoway绑定加入bindingsource是因为在winform里,他才能对INotifyPropertyChanged事件做出反应,去自动刷新binding去更新UI