我编写控制台应用程序,它有队列集合,用作消息的工厂。
有什么方法可以让集合在它成为空的时候引发事件。
我只是不想自己开始拉它,不时检查它。
我想过使用ObservableCollection
但是当它变空时我没有看到实现引发事件的方法。
感谢您的帮助。
答案 0 :(得分:5)
ObservableCollection
将触发CollectionChanged
event。只需挂钩即可,并在您的事件处理程序中检查集合的Count == 0
。
答案 1 :(得分:0)
您可以继承ObservableCollectionEx
并添加自己的活动:
public class ObservableCollectionEx<T> : ObservableCollection<T>
{
public event EventHandler CollectionEmpty;
protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
{
if (this.Count == 0)
{
var eventCopy = this.CollectionEmpty;
if (eventCopy != null)
{
eventCopy(this, EventArgs.Empty);
}
}
base.OnCollectionChanged(e);
}
}