zoukankan      html  css  js  c++  java
  • DataGridView绑定List时无法进行添加删除操作的解决方法

    将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);
                }

            }

        }

    }

  • 相关阅读:
    时间复杂度的分析
    插入排序
    maven中jar、war、pom的区别
    Maven属性(properties)标签的使用
    超级POM
    maven 常用命令
    Maven Pom文件标签详解
    maven 查找依赖的办法
    maven snapshot和release版本的区别
    maven pom文件标签含义
  • 原文地址:https://www.cnblogs.com/yoshirogu/p/1564846.html
Copyright © 2011-2022 走看看