gpt4 book ai didi

c# - CollectionView.DeferRefresh() 抛出异常

转载 作者:太空狗 更新时间:2023-10-29 18:12:35 26 4
gpt4 key购买 nike

在某些情况下,由于大量 INotifyChangedProperties 事件,您有许多 UI 更新。在这种情况下,当所有属性都像批量设置时,您可能希望只向 UI 发出一次更改信号。

我发现这篇很棒的文章解释了如何延迟 ViewCollection 的刷新:

http://marlongrech.wordpress.com/2008/11/22/icollectionview-explained/

但是,当 View 被延迟并且我尝试向集合中添加一些内容时,我得到了一个异常。我不明白为什么不允许这样做。这就是它的全部意义。

InvalidoperationException: Cannot change or check the contents or Current position of CollectionView while Refresh is being deferred.

有谁知道如何解决这个问题?非常感谢,

最佳答案

我认为您误解或歪曲了有关该主题的 MSDN 帮助。他们说你不必修改底层集合来排序或过滤。他们并不是说您不能修改基础集合。 OP有一个非常有效的观点。我们有一个已经为用户排序和过滤的大型集合,它显示在列表框中。当用户选择这些记录的范围并想要删除它们时,我们被迫进入 ListCollectionView 为每个被删除的项目刷新 View 的情况。

我认为 OP 的问题非常有道理。性能是可怕的,因为我们对大量数据有多个过滤器。 DeferRefresh 在像 ListCollectionView 这样的类上有真正的用途,但在您最需要它的时候莫名其妙地禁用了插入和删除。

关于c# - CollectionView.DeferRefresh() 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6032132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com