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/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    go mod 安装依赖 unkown revision问题解决
    K8S学习笔记
    TCP time_wait close_wait问题(可能是全网最清楚的例子)
    认识beanstalkd
    【线上问题系列】DB字段类型变更导致核心服务不可用
    mysql 类型自动化转换问题
    curl 用法
    requests访问https站点证书告警问题
    博客目录
    工作随笔——elasticsearch数据冷热分离、数据冷备
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1458901.html
Copyright © 2011-2022 走看看