gpt4 book ai didi

c# - ObservableCollection(T).CollectionChanged 事件

转载 作者:行者123 更新时间:2023-11-30 14:57:19 25 4
gpt4 key购买 nike

SelectedObjects.CollectionChanged += (s, e) =>
{
Console.WriteLine(e.NewItems.Count);//prints out 1 if a new item is added
};

我不确定的一件事是为什么 e.OldItems 和 e.NewItems 是集合?

如果我每秒添加多个项目,每个项目都会触发事件,输出始终为 1,这意味着它会被多次触发,但是有没有办法延迟事件触发,例如在更改 5 秒之后,所以我可以在那 5 秒内获得 e.OldItems 或 e.NewItems 中的所有更改吗?

最佳答案

没有。可观察集合的要点是在修改时引发事件。虽然在您的用例中希望在设定的时间后收到通知,但这并不是每个用例并且会使类过于复杂。

你可以做的是将可观察集合包装到你创建的自定义类中(例如 DelayedObservableCollection<T> ,并且 - 与计时器一起 - 在添加/修改项目时引发它自己的事件,然后在指定时间后没有添加/修改任何项目,或者添加/修改了超过“x”个项目。

关于c# - ObservableCollection(T).CollectionChanged 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20992713/

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