zoukankan      html  css  js  c++  java
  • List绑定时无法进行增删查改的解决办法

    转自:sunrack

    将List<T>转换为BindingList<T>,然后设置DataGridView的DataSource为BindingList<T>!!
    代码:

    DataGridView.DataSource = new BindingList<T>(List<T>);

    将绑定BindingList<T>的DataSource转化为List<T>,同理
    代码:

    List<T> modelList=new List<T>((BindingList<T>)this.DataGridView.DataSource);

    说明:BindingList<T>和List<T>都有个构造函数,参数是IEnumerable<T>,既然他们俩个都是继承IEnumerable,当然能相互转换。

    下面是这个构造函数的执行过程:

    public List(IEnumerable<T> collection)
    {
    if (collection == null)
    {
            ThrowHelper.ThrowArgumentNullException(ExceptionArgument.collection);
        }
        ICollection<T> is2 = collection as ICollection<T>;
    if (is2 != null)
    {
    int count = is2.Count;
    this._items = new T[count];
            is2.CopyTo(this._items, 0);
    this._size = count;
        }
    else
    {
    this._size = 0;
    this._items = new T[4];
    using (IEnumerator<T> enumerator = collection.GetEnumerator())
    {
    while (enumerator.MoveNext())
    {
    this.Add(enumerator.Current);
                }
            }
        }
    }

    作者:KKcat
        
    个人博客:http://jinzhao.me/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    艾伟:[WCF中的Binding模型]之六(完结篇):从绑定元素认识系统预定义绑定 狼人:
    艾伟:.NET框架4.0中都有些什么? 狼人:
    艾伟:WM有约(三):下一次是什么时候? 狼人:
    艾伟:为什么微软要推 ADO.NET Data Services Framework 狼人:
    艾伟:WM有约(二):配置信息 狼人:
    艾伟:F4何去何从 大视野观察Framework 4.0 狼人:
    艾伟:[WCF的Binding模型]之三:信道监听器(Channel Listener) 狼人:
    艾伟:.NET : 如何保护内存中的敏感数据? 狼人:
    艾伟:Silverlight 2.0 之旋转木马 狼人:
    艾伟:.NET和J2EE该相互学习什么 狼人:
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1458901.html
Copyright © 2011-2022 走看看