问题描述
描述项目中遇到的问题:
在Devexprss的gridcontrol控件中,使用editform编辑模式,实现添加新行的需求。但是弹出的空白editform中,输入信息时,会造成已输入信息消失
。(比如:输入第一个框,第二个框后,输入第三个框时,第一个信息会消失)
@Override
private void Form1_Load(object sender, EventArgs e) {
List<Data> dataList = new List<Data>()
{
new Data(){Type1 = "One", Type2 = "Two",Type3 = "Three"},
new Data(){Type1 = "One", Type2 = "Two",Type3 = "Three"},
new Data(){Type1 = "One", Type2 = "Two",Type3 = "Three"},
new Data(){Type1 = "One", Type2 = "Two",Type3 = "Three"},
new Data(){Type1 = "One", Type2 = "Two",Type3 = "Three"},
new Data(){Type1 = "One", Type2 = "Two",Type3 = "Three"}
};
this.gridControl1.DataSource = dataList;
}
原因分析:
经过测试,发现是数据源的问题,datasource是datatable类型时,输入信息基本正常;但只要是list集合时
,就会有这种奇怪的bug产生。
解决方案:
将数据源做处理,把list集合转换为datatable进行赋值,然后还要注意gridview的数据源是datatable时,使用gridview1.getrow(rowhandle) as Company无法转换成功,必须用gridview1.getdatarow,再将datarow转换为实体对象,才能拿到数据。