winform中的Datagridview控件与List同步修改

Winform的datagridview是个很强大的控件,可用datatable, List等型的数据与之绑定显示。

可惜的是,绑定的LIst不能同步更新。

估计是为了改进List不能同步更新的问题,微软提供了另外一个类叫BindingList,用于与显示控件的同步更新。但这个类又不能与List类直接转换,因此又提供了IList接口。

综上,实现datagridview与List同步更新的思路是:

1. 定义IList接口,并用List来实现IList接口:

    IList<MyClass> iList=new List<MyClass>(){......}

  2.用1创建的IList接口实例来初始化BindingList实例:

   BindingList<MyClass> bindList=new BindingList(iList);

3. 将绑定bindList到datagridview

    dgv1.datasource=bindList;

至此,dgv1通过bindList将iList的数据显示在了dgv1上,并且,当dgv1数据更新时,数据同步更新到了bindList上。

  注意此时,iList的数据并没有更新。用来更新bindList的数据到iList上,使用下bindList的ToList()方法就可以了

4.数据更新到iList:

 iList=bindList.ToList()

原文地址:https://www.cnblogs.com/ccjungle/p/8999387.html