集合中的项目数量:~100k 列中显示的字段数量:4-10
问题本身 - 集合是从使用 EntityFramework 的数据库中获取的。在开发计算机上加载和具体化所有所需数据大约需要 10-12 秒。出现的另一件事是同一个集合可以绑定到多个控件,因此,它们必须单独过滤(= 不设置默认集合视图过滤器)。目前,我将绑定设置如下:
Binding b = new Binding();
b.Source = new CollectionViewSource() { Source = MyLargeCollection }.View;
MyDataGrid.SetBinding(DataGrid.ItemsSourceProperty, b);
创建一个新的 CollectionViewSource 大大增加了初始化所需的时间 - 几分钟(我怀疑它出于某种原因枚举了 100k 集合)。我的意思是,如果我只是设置:
b.Source = MyLargeCollection;
从数据库加载和具体化数据只需 10-12 秒。
问题 - 我的代码有问题吗?如果不是 - 将相同的大型集合绑定到不同的项目控件但具有不同的集合视图的正确方法是什么?