【发布时间】:2015-04-16 20:01:28
【问题描述】:
我有一个包含 10,000 个项目的数据库,您可以在应用运行时向其中添加和删除。
我有一个最多显示 100 个项目的 ListBox,并且支持分页。
您可以对 10,000 个项目进行过滤和排序,这些项目需要立即反映在列表框中。
我有一个按钮,只要它通过过滤器,它就会随机选择一个项目。
用于此类操作的最佳集合/视图集是什么?
到目前为止,我的第一步是为数据库中的所有项目创建一个ObservableCollection,我们将其称为MainOC。
然后通过解析MainOC,我们将调用FilteredList,为所有匹配过滤器的项目创建一个List。
然后根据上面的List 创建一个ListCollectionView 来保存前100 个项目。
缺点:
- 每次应用排序操作时,您都必须重新创建
ListCollectionView。 - 您必须在每次页面时重新创建
ListCollectionView。 - 每次更改过滤器时,您都必须重新创建
ListCollectionView。 - 每次向
MainOC添加或删除项目时,您都必须重新创建ListCollectionView。
有没有更好的方法我错过了?
例如,我看到您可以将过滤器应用于ListCollectionView。我应该用所有 10,000 个项目填充我的 ListCollectionView 吗?但是,我怎样才能限制我的ListBox 显示的项目数量?
我应该直接对数据库进行过滤和排序吗?我可以直接从数据库构建FilteredList,并以此为基础创建我的ListCollectionView,但这仍然具有上面列出的所有缺点。
寻找您可以提供的任何输入!
【问题讨论】: