单个可观察集合与过滤可观察集合性能

时间:2015-06-10 11:27:20

标签: wpf

例如,大型集合绑定的速度更快,

要求 - 电子交易申请:

Price Blotter - 例如,显示不同证券的报价/交易。

主视图 - 显示所有引号。

国家/地区视图 - 显示属于特定国家/地区的证券的报价/交易。例如。英国/法国等。

目前 - 我们为每个视图都有可观察的集合,当价格从服务器到达时,我们会根据过滤器向每个Observable集合发送一个副本,即一个到主视图,并根据国家/地区视图。 / p>

问题:即使在添加/删除价格时,CollectionViewsource需要刷新,过滤的可观察集合也会优于此模型。刷新CollectionView源会增加任何性能损失。

上面的示例仅供参考,可以有多达20个不同的视图,多达20-50K,具有5-6K的独特价格,每个价格在盘中具有非常大的价格深度。应用程序对GUI性能有很高的要求。

我打算用一个轻量级Tableview替换当前的Datagrid,想知道一个主Observable集合是否也会有用。

非常感谢您的投入。

1 个答案:

答案 0 :(得分:0)

CollectionViewSource上的刷新可能会对性能造成非常不利影响,因为它会导致视图中的项目和项目容器重新生成(请参阅下一句中的链接以供参考)。这就是WPF中Editable Collections的全部原因。我已经为产品实现了一次大型可修改集合,但在使用IEditableCollectionView时我从未遇到过性能问题,尽管这并不是说它可能对您的应用程序来说不够快。

我的猜测是,如果您使用IEditableCollectionView,如果您将收集分开或将它们全部放在一个应用了不同过滤器的巨型集合中,则无关紧要。