List和BindingList的转换

List绑定DataGridView时无法进行增删查改的解决办法

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

转载自http://www.cnblogs.com/jinzhao/archive/2009/05/17/1458901.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值