我们有一个自定义数据库来处理序列化索引数据,并且已经达到数据库容量的70%(即int.MaxValue或2 ^ 31个元素)。我们开始分析是否可以通过我们自己实现一个Collection的实现来打破此限制,该Collection可以处理可能的无限数量的元素(当然受计算机内存的限制)。
当前,我们将尽可能多地委派WPF处理UI虚拟化,并且在实现IList的过程中,仅从我们这方面处理数据虚拟化。但是,IList.Count属性的类型(整数)限制为2 ^ 31。这意味着这是我们的主要限制。
我们曾考虑过要为迭代创建自己的界面,但因此我们将失去与IList接口紧密相关的DataGrid的UI虚拟化。
即使我(或多或少)能够制作自己的UserControl,我也想知道是否还没有为WPF做类似的事情。我假设我们不是第一个想要为其用户提供这么多数据的人。
最佳答案
在处理数据库中的大量记录时,Virtualise data
比创建自定义列表和控件来容纳数据库中2 ^ 31个项目要容易得多。
我认为您的数据库已准备好处理该数量的数据,当您到达9,223,372,036,854,775,807
行(即Int64.MaxValue
MSDN)时,它自身将继续存在。
关于c# - 使用超过2 ^ 31个元素的虚拟化集合进行UI虚拟化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57767445/