集合变空时通知观察者

本文关键字:通知 观察者 集合 | 更新日期: 2023-09-27 18:20:46

我正在编写控制台应用程序,它有队列集合,用作消息的工厂。

集合为空时,是否有某种方式会引发事件。

我只是不想开始自己拉它,不时地检查它。

我曾想过使用ObservableCollection,但当它变空时,我看不到实现引发事件的方法。

谢谢你的帮助。

集合变空时通知观察者

ObservableCollection在集合的内容发生更改时激发其CollectionChanged事件。只需勾选它,然后在事件处理程序中检查集合是否为Count == 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);
        }
    }