List作为c#一种泛型集合,不会强行对值类型进行装箱和拆箱,或对引用类型进行,向下强制类型转换,性能得到提高。DataGirdView作为一个强大的空间,可以绑定数控和list数据。只需通过BindingList类型将List数据绑定到DataGirdView即可。
第一步:声明DataStuctClass类,代码如下:
class DataStuctClass
{
private double _StartPointX;//图元起点X坐标Coordinate
private double _StartPointY;//图元起点Y坐标Coordinate
private double _EndPointX; //图元终点X坐标Coordinate
private double _EndPointY; //图元终点Y坐标Coordinate
private double _CircleCenterX;//图元圆心X坐标Coordinate
private double _CircleCenterY;//图元圆心Y坐标Coordinate
public double StartPointX { get => _StartPointX; set => _StartPointX = value; }
public double StartPointY { get => _StartPointY; set => _StartPointY = value; }
public double EndPointX { get => _EndPointX; set => _EndPointX = value; }
public double EndPointY { get => _EndPointY; set => _EndPointY = value; }
public double CircleCenterX { get => _CircleCenterX; set => _CircleCenterX = value; }
public double CircleCenterY { get => _CircleCenterY; set => _CircleCenterY = value; }
public DataStuctClass(double StartPointX, double StartPointY, double EndPointX, double EndPointY, double CircleCenterX, double CircleCenterY)
{
this._StartPointX = StartPointX;
this._StartPointY = StartPointY;
this._EndPointX = EndPointX;
this._EndPointY = EndPointY;
this._CircleCenterX = CircleCenterX;
this._CircleCenterY = CircleCenterY;
}
}
第二步:声明BindingList,并向BingL实例中填充数据,代码如下:
BindingList<DataStuctClass> BingL = new BindingList<DataStuctClass>();
for (int i = 0; i < 10; i++)
{
DataStuctClass TempData = new DataStuctClass(i, i + 1, i + 2, i + 3, i + 4, i + 5);
BingL.Add(TempData);
}
第三步:建立BingL与GridViewTest的绑定关系,代码如下:
GridViewTest.AutoGenerateColumns = true;//允许GridViewTest自动创建列
GridViewTest.DataSource = BingL;
运行结果如图: