SelectedObjects.CollectionChanged += (s, e) =>
{
Console.WriteLine(e.NewItems.Count);//prints out 1 if a new item is added
};
有一件我不太确定的事情是为什么e.OldItems和e.NewItems是集合?
如果我每秒添加多个项目,事件会对每个项目进行触发,输出始终为1,这意味着它被多次触发,但是否有一种延迟事件触发的方法,例如在改变后5秒钟后,以便我可以在e.OldItems或e.NewItems中获得这五秒钟内的每个更改?
CollectionChanged
及其事件参数并不特定于任何预定义类型,如ObservableCollection<T>
。它由INotifyCollectionChanged
定义,而绑定会寻找该接口。因此,如果您需要或想要一个仅偶尔更新并聚合多个后续更改的集合,可以自己编写,并且INotifyCollectionChanged
接口为此提供了完全支持。 - O. R. Mapper