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
本文介绍如何通过将List<T>转换为BindingList<T>并设置为DataGridView的数据源,实现DataGridView的增删查改功能。同时提供了如何从DataGridView的DataSource中获取List<T>的方法。
1010

被折叠的 条评论
为什么被折叠?



