有些经验的大虾都知道,列表(datagridview)控件可以绑定datatable进行数据展示,一般的datatable包含的都是int,double,string等类型数据,但实际上也可以绑定自定义对象, 只要该对象可以实现tostring(),和 tryparse()方法即可。
class MyDef
{
string _Content;
public MyDef()
{
thread.Sleep(10);
}
....
public override string ToString()
{
return _Content;
} public bool TryParse(string s)
{
_Content=s;
return true;
}
}
现在问题出来了, 如果datatable的所有元素都由MyDef组成(即组成的是MyDef[x,y ]数组),而MyDef初始化过程较慢,加载到列表控件时的显示体验就很慢,如果能够后台一边初始化MyDef,一边加载数据到datable, 并更新到列表控件(见我的博客文章http://blog.csdn.net/etudiant6666/article/details/7296416),速度会快很多。 有兴趣的同学可以实现一下,三八节结贴呦。
class MyDef
{
string _Content;
public MyDef()
{
thread.Sleep(10);
}
....
public override string ToString()
{
return _Content;
} public bool TryParse(string s)
{
_Content=s;
return true;
}
}
现在问题出来了, 如果datatable的所有元素都由MyDef组成(即组成的是MyDef[x,y ]数组),而MyDef初始化过程较慢,加载到列表控件时的显示体验就很慢,如果能够后台一边初始化MyDef,一边加载数据到datable, 并更新到列表控件(见我的博客文章http://blog.csdn.net/etudiant6666/article/details/7296416),速度会快很多。 有兴趣的同学可以实现一下,三八节结贴呦。
我的建议用滚动实现,预加载前后两页数据,滚动条滚动时显示上一页或下一页的数据或交叉数据