2010-05-06 52 views
1

我打破了我的项目在一小部分,其中一个部分涉及加载可能有很多记录的网格(可能高达1000s的数据库中的记录)。在silverlight中加载大量数据的数据网格?

理想情况下,我想要一些机制,当用户滚动网格,更多的数据被检索。

我已阅读某些控件(带有RIA的数据包)执行此操作,但我想知道如何自己实现此操作或执行类似操作?

我一直在考虑首次加载50条记录,当用户在第50条记录附近滚动时,然后再获得50条记录作为开始,等等。不知道我如何做到这一点,但这不正确,或者我是否应该在网格中加载记录的id,然后通过异步线程获取每一行以加载它自己,但是然后我为每条记录点击了我的数据库?

谢谢

JD。

+2

+1,这将是不错的。寻呼是为技术辩护人。导致“数据寻呼机”预先提取一页或两页的简单滚动条对于只看到大量列表的用户而言将是更好的UI。目前我还不知道有哪些网格支持这一点。 – AnthonyWJones 2010-05-06 15:12:31

+0

我打了几天头,对IEnumerable <>和'yield return'等各种各样的组合进行了尝试。我最终将10K记录加载到DataGrid中,并意识到它可以轻松处理该数量。所以我现在停止了寻找一个解决方案,并且简单地实现了一个类,它在后台加载所有数据,当搜索目标改变时加载新数据。但是当我再次开始寻找解决方案时,我认为我最好的选择是实施ICollectionView。 – HiredMind 2011-05-25 21:16:38

回答

1

听起来就像你在描述数据的虚拟化。 Xceed似乎正在研究具有这种能力的商业控制,但迄今为止还没有发布任何东西(请参阅Xceed DataGrid for Silverlight Tech Preview!)。对于从WPF世界上做一些这方面的想法,你可以检查出:

+0

谢谢戴夫。我试图避免走下第三方组件路线,但在去那里之前,我会看看你提供的其他链接。 – 2010-05-10 14:41:46