日期:2014-05-18  浏览次数:20985 次

娱乐一下,出个考题,如何异步的把自定义对象datatable加载到列表控件中
有些经验的大虾都知道,列表(datagridview)控件可以绑定datatable进行数据展示,一般的datatable包含的都是int,double,string等类型数据,但实际上也可以绑定自定义对象, 只要该对象可以实现tostring(),和 tryparse()方法即可。

C# code

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),速度会快很多。

  有兴趣的同学可以实现一下,三八节结贴呦。

------解决方案--------------------
哈哈,顶一个先!
看看博客去。。。。
------解决方案--------------------
有想法
------解决方案--------------------
看了博客 回来赞一个
------解决方案--------------------


看博客去。。
------解决方案--------------------
谢谢。
------解决方案--------------------
兄弟,谁把几万条数据加载到一个datagridview不翻页来着?虽然现在机器配置都比较好,但为了节约资源也不至于把海量数据加载到内存吧,而且.NET空间默认只允许创建他的线程进行操作,如果数据量过大,你界面的刷新可能会出问题。
我的建议用滚动实现,预加载前后两页数据,滚动条滚动时显示上一页或下一页的数据或交叉数据